Arbeiten mit watchOS-Texteingaben in Xamarin
Die Apple Watch bietet keine Tastatur für Benutzer zum Eingeben von Text, unterstützt jedoch einige watch-freundliche Alternativen:
- Auswählen aus einer vordefinierten Liste von Textoptionen,
- Siri-Diktieren,
- Auswählen eines Emojis,
- Buchstaben-für-Buchstaben-Handschrifterkennung (eingeführt in watchOS 3)
Der Simulator unterstützt derzeit kein Diktieren, aber Sie können weiterhin die anderen Optionen des Texteingabecontrollers testen, z. B. Scribble, wie hier gezeigt:
So akzeptieren Sie Texteingaben in einer watch-App:
- Erstellen Sie ein Zeichenfolgenarray mit vordefinierten Optionen.
- Rufen Sie
PresentTextInputController
mit dem Array auf, unabhängig davon, ob Emoji zugelassen werden soll oder nicht, und einAction
, das aufgerufen wird, wenn der Benutzer fertig ist. - Testen Sie in der Vervollständigungsaktion das Eingabeergebnis, und führen Sie die entsprechende Aktion in der App aus (möglicherweise den Textwert einer Bezeichnung festlegen).
Der folgende Codeausschnitt zeigt dem Benutzer drei vordefinierte Optionen an:
var suggest = new string[] {"Get groceries", "Buy gas", "Post letter"};
PresentTextInputController (suggest, WatchKit.WKTextInputMode.AllowEmoji, (result) => {
// action when the "text input" is complete
if (result != null && result.Count > 0) {
// this only works if result is a text response (Plain or AllowEmoji)
enteredText = result.GetItem<NSObject>(0).ToString();
Console.WriteLine (enteredText);
// do something, such as myLabel.SetText(enteredText);
}
});
Die WKTextInputMode
Enumeration weist drei Werte auf:
- Plain
- AllowEmoji
- AllowAnimatedEmoji
Plain
Wenn der einfache Modus festgelegt ist, kann der Benutzer Folgendes auswählen:
- Diktat
- Scribble oder
- aus einer vordefinierten Liste, die von der Anwendung bereitgestellt wird.
Das Ergebnis wird immer als NSObject
zurückgegeben, das in eine string
umgewandelt werden kann.
Emoji
Es gibt zwei Arten von Emojis:
- Reguläre Unicode-Emojis
- Animierte Bilder
Wenn der Benutzer ein Unicode-Emoji auswähelt, wird es als Zeichenfolge zurückgegeben.
Wenn ein animiertes Bild-Emoji ausgewählt ist, enthält das result
im Vervollständigungshandler ein NSData
Objekt, das das Emoji UIImage
enthält.
Nur Diktat akzeptieren
So führen Sie den Benutzer direkt zum Diktierbildschirm, ohne Vorschläge anzuzeigen (oder die Scribble-Option):
- übergeben Sie ein leeres Array für die Vorschlagsliste, und
- legen Sie fest
WatchKit.WKTextInputMode.Plain
.
PresentTextInputController (new string[0], WatchKit.WKTextInputMode.Plain, (result) => {
// action when the "text input" is complete
if (result != null && result.Count > 0) {
dictatedText = result.GetItem<NSObject>(0).ToString();
Console.WriteLine (dictatedText);
// do something, such as myLabel.SetText(dictatedText);
}
});
Wenn der Benutzer spricht, zeigt der watch-Bildschirm den folgenden Bildschirm an, der den Text so enthält, wie er verstanden wird (z. B. "Dies ist ein Test"):
Sobald die Schaltfläche Fertig geklickt wird, wird der Text zurückgegeben.