Share via


watchOS Menu Control (Force Touch) in Xamarin

Watch Kit bietet eine Force Touch-Geste, die ein Menü auslöst, wenn sie auf einem Überwachungs-App-Bildschirm implementiert wird.

Apple Watch mit einem Menü

Reagieren auf Fingereingabe erzwingen

Wenn ein Menu Benutzer für einen Schnittstellencontroller implementiert wurde, wird das Menü angezeigt, wenn ein Benutzer eine Force Toucheingabe ausführt. Wenn kein Menü implementiert wurde, wird der Bildschirm kurz animiert, es tritt keine andere Aktion auf.

Erzwingen von Fingereingaben sind keinem bestimmten Element auf dem Bildschirm zugeordnet; Nur ein Menü kann an einen Schnittstellencontroller angeschlossen werden und wird unabhängig davon angezeigt, wo die Force Touch-Taste auf dem Bildschirm auftritt.

Zwischen einer und vier Menüoptionen kann angezeigt werden.

Hinzufügen eines Menüs

Zum Menu Entwurfszeitpunkt muss ein InterfaceController Storyboard hinzugefügt werden. Wenn ein Menüsteuerelement auf einen Schnittstellencontroller gezogen wird, gibt es keine visuellen Hinweise auf der Storyboardvorschau, aber das Menü wird im Dokumentgliederungsblock angezeigt:

Bearbeiten eines Menüs zur Entwurfszeit

Bis zu vier Menüelemente können dem Menüsteuerelement hinzugefügt werden. Sie können im Eigenschaftenpad konfiguriert werden. Die folgenden Attribute können festgelegt werden:

  • Titel und
  • Benutzerdefiniertes Bild oder
  • Ein Systembild: Annehmen, Hinzufügen, Blockieren, Ablehnen, Informationen, Vielleicht, Mehr, Stummschalten, Anhalten, Wiedergeben, Wiederholen, Fortsetzen, Teilen, Shuffle, Lautsprecher, Papierkorb.

Erstellen Sie eine Action , indem Sie den Abschnitt "Ereignisse " des Eigenschaftenpads auswählen und den Namen für die Aktionsmethode eingeben. Eine partielle Methode wird im Code erstellt, der in der Schnittstellencontrollerklasse implementiert werden kann, wie folgt:

partial void MenuItemTapped ()
{
    Console.WriteLine ("A menu item was tapped.");
}

Custom Images

Ähnlich wie Registerkartenbilder in iOS erfordern Menüelementbilder ein undurchsichtiges Muster mit einem Alphakanal, der das Anzeigen des Hintergrunds ermöglicht.

Sie sollten die Bilder, die für das Menü verwendet werden, zum Überwachungs-App-Projekt (nicht das Überwachungs-App-Erweiterungsprojekt) hinzufügen, um eine optimale Leistung zu erzielen.

Ändern der Menüelemente

Hinzufügen zur Laufzeit

Sie können keinen Menu Schnittstellencontroller zur Laufzeit hinzufügen, obwohl die Sammlung von MenuItems programmgesteuert geändert werden kann . Verwenden Sie die AddMenuItem Methode wie gezeigt:

AddMenuItem (WKMenuItemIcon.Accept, "Yes", new ObjCRuntime.Selector ("tapped"));

Die Xamarin.iOS Watch Kit-API erfordert derzeit eine selector für die AdMenuItem Methode, die wie folgt deklariert werden sollte:

[Export("tapped")]
void MenuItemTapped ()
{
    Console.WriteLine ("The dynamically added 'Yes' menu item was tapped.");
}

Entfernen zur Laufzeit

Die ClearAllMenuItems Methode kann aufgerufen werden, um alle programmgesteuerten Menüelemente zu entfernen.

Im Storyboard konfigurierte Menüelemente können nicht gelöscht werden.