Utilisation de l’entrée de texte watchOS dans Xamarin
L’Apple Watch ne fournit pas de clavier permettant aux utilisateurs d’entrer du texte, mais elle prend en charge certaines alternatives watch conviviales :
- Sélection dans une liste prédéfinie d’options de texte,
- Dictée Siri,
- Choisir un emoji,
- Reconnaissance de l’écriture manuscrite lettre par lettre (introduite dans watchOS 3).
Le simulateur ne prend actuellement pas en charge la dictée, mais vous pouvez toujours tester les autres options du contrôleur d’entrée de texte, telles que Scribble, comme illustré ici :
Pour accepter une entrée de texte dans une application watch :
- Créez un tableau de chaînes d’options prédéfinies.
- Appelez
PresentTextInputController
avec le tableau, indiquez s’il faut autoriser emoji ou non, et unAction
qui est appelé lorsque l’utilisateur a terminé. - Dans l’action d’achèvement, testez le résultat d’entrée et effectuez l’action appropriée dans l’application (éventuellement en définissant la valeur de texte d’une étiquette).
L’extrait de code suivant présente trois options prédéfinies à l’utilisateur :
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);
}
});
L’énumération WKTextInputMode
a trois valeurs :
- Plain
- AllowEmoji
- AllowAnimatedEmoji
Plain
Lorsque le mode brut est défini, l’utilisateur peut choisir :
- Dictée
- Gribouiller, ou
- à partir d’une liste prédéfinie que l’application fournit.
Le résultat est toujours retourné en tant NSObject
que qui peut être converti en .string
Emoji
Il existe deux types d’emoji :
- Emoji Unicode standard
- Images animées
Lorsque l’utilisateur choisit un emoji Unicode, il est retourné sous forme de chaîne.
Si un emoji d’image animée est sélectionné, le result
dans le gestionnaire de saisie semi-automatique contient un NSData
objet qui contient l’emoji UIImage
.
Acceptation de la dictée uniquement
Pour amener l’utilisateur directement à l’écran de dictée sans afficher de suggestions (ou l’option Scribble) :
- passez un tableau vide pour la liste des suggestions, et
- définissez
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);
}
});
Lorsque l’utilisateur parle, l’écran watch affiche l’écran suivant, qui inclut le texte tel qu’il est compris (par exemple, « Il s’agit d’un test ») :
Une fois qu’ils ont appuyé sur le bouton Terminé , le texte est retourné.