Share via


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 :

Test de l’option gribouillage

Pour accepter une entrée de texte dans une application watch :

  1. Créez un tableau de chaînes d’options prédéfinies.
  2. Appelez PresentTextInputController avec le tableau, indiquez s’il faut autoriser emoji ou non, et un Action qui est appelé lorsque l’utilisateur a terminé.
  3. 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.

Dictée, scribble 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 ») :

Lorsque l’utilisateur parle, l’écran watch affiche le texte tel qu’il est compris

Une fois qu’ils ont appuyé sur le bouton Terminé , le texte est retourné.