Práce s textovým vstupem watchOS v Xamarinu
Apple Watch neposkytuje uživatelům klávesnici pro zadávání textu, ale podporuje některé alternativy vhodné pro kukátky:
- Výběr z předem definovaného seznamu možností textu
- Diktování Siri,
- Výběr emoji
- Rozpoznávání rukopisu psané písmenem (zavedené ve watchOS 3)
Simulátor v současné době nepodporuje diktování, ale i tak můžete otestovat další možnosti kontroleru textového vstupu, například Scribble, jak je znázorněno tady:
Přijetí textového zadání v aplikaci kukátku:
- Vytvořte pole řetězců s předdefinovanými možnostmi.
- Volání
PresentTextInputController
s polem, ať už chcete povolit emoji nebo ne, a volejte voláníAction
po dokončení uživatele. - V akci dokončení otestujte výsledek vstupu a proveďte v aplikaci odpovídající akci (pravděpodobně nastavíte textovou hodnotu popisku).
Následující fragment kódu představuje uživateli tři předdefinované možnosti:
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);
}
});
Výčet WKTextInputMode
má tři hodnoty:
- Prostý
- AllowEmoji
- AllowAnimatedEmoji
Prostý
Když je nastavený prostý režim, uživatel může zvolit:
- Diktování
- Klikybíč nebo
- z předem definovaného seznamu, který aplikace poskytuje.
Výsledek se vždy vrátí jako výsledek NSObject
, který lze přetypovat na hodnotu string
.
Emoji
Existují dva typy emoji:
- Běžné emoji Unicode
- Animované obrázky
Když uživatel zvolí emoji Unicode, vrátí se jako řetězec.
Pokud je vybrán result
animovaný obrázek emoji v obslužné rutině dokončení bude obsahovat NSData
objekt, který obsahuje emoji UIImage
.
Přijetí pouze diktování
Pokud chcete uživatele převést přímo na obrazovku diktování, aniž by se vám zobrazovaly nějaké návrhy (nebo možnost Scribble):
- předat prázdné pole pro seznam návrhů a
- nastavit
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);
}
});
Když uživatel mluví, obrazovka kukátku zobrazí následující obrazovku, která obsahuje text, jak je srozumitelný (například "Toto je test"):
Jakmile stisknou tlačítko Hotovo , vrátí se text.