在 Xamarin 中使用 watchOS 文字輸入
Apple Watch 不提供鍵盤讓使用者輸入文字,不過它確實支援一些方便觀看的替代方案:
- 從預先定義的文字選項清單中選取 ,
- Siri 聽寫,
- 選擇 Emoji,
- 逐字寫字母手寫識別(在 watchOS 3 中引進)。
模擬器目前不支援聽寫,但您仍然可以測試文字輸入控制器的其他選項,例如 Scribble,如下所示:
若要接受監看應用程式中的文字輸入:
- 建立預先定義選項的字串數位。
- 使用陣語呼叫
PresentTextInputController
,不論是否允許 emoji,以及Action
使用者完成時所呼叫的 。 - 在完成動作中,測試輸入結果,並在應用程式中採取適當的動作(可能設定標籤的文字值)。
下列代碼段會向使用者呈現三個預先定義的選項:
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);
}
});
列舉 WKTextInputMode
有三個值:
- 平原
- AllowEmoji
- AllowAnimatedEmoji
平原
設定純模式時,使用者可以選擇:
- 聽寫
- 擷寫,或
- 從應用程式提供的預先定義清單。
結果一律會以 NSObject
可以轉換成 的 string
傳回。
Emoji
Emoji 有兩種類型:
- 一般 Unicode emoji
- 動畫影像
當使用者選擇 Unicode emoji 時,它會以字串的形式傳回。
如果選取 result
動畫影像 emoji,則完成處理程式中的 會包含 NSData
包含 emoji UIImage
的物件。
只接受聽寫
若要直接將使用者帶到聽寫畫面,而不顯示任何建議 (或 Scribble 選項):
- 傳遞建議清單的空白陣列,並
- 設定
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);
}
});
當用戶說話時,監看式畫面會顯示下列畫面,其中包含所瞭解的文字(例如「這是測試」):
一旦按下 [ 完成] 按鈕,就會傳回文字。