共用方式為


在 Xamarin 中使用 watchOS 文字輸入

Apple Watch 不提供鍵盤讓使用者輸入文字,不過它確實支援一些方便觀看的替代方案:

  • 從預先定義的文字選項清單中選取 ,
  • Siri 聽寫,
  • 選擇 Emoji,
  • 逐字寫字母手寫識別(在 watchOS 3 中引進)。

模擬器目前不支援聽寫,但您仍然可以測試文字輸入控制器的其他選項,例如 Scribble,如下所示:

Testing the scribble option

若要接受監看應用程式中的文字輸入:

  1. 建立預先定義選項的字串數位。
  2. 使用陣語呼叫 PresentTextInputController ,不論是否允許 emoji,以及 Action 使用者完成時所呼叫的 。
  3. 在完成動作中,測試輸入結果,並在應用程式中採取適當的動作(可能設定標籤的文字值)。

下列代碼段會向使用者呈現三個預先定義的選項:

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

平原

設定純模式時,使用者可以選擇:

  • 聽寫
  • 擷寫,或
  • 從應用程式提供的預先定義清單。

Dictation, Scribble, or from a pre-defined list that the app supplies

結果一律會以 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);
    }
});

當用戶說話時,監看式畫面會顯示下列畫面,其中包含所瞭解的文字(例如「這是測試」):

When the user is speaking, the watch screen displays the text as it is understood

一旦按下 [ 完成] 按鈕,就會傳回文字。