Xamarin에서 watchOS 텍스트 입력 작업

Apple Watch는 사용자가 텍스트를 입력할 수 있는 키보드를 제공하지 않지만 몇 가지 시계 친화적인 대안을 지원합니다.

  • 미리 정의된 텍스트 옵션 목록에서 선택
  • Siri 받아쓰기,
  • 이모지 선택
  • 글자별 필기 인식(watchOS 3에 도입됨)을 낙서합니다.

시뮬레이터는 현재 받아쓰기를 지원하지 않지만 다음과 같이 텍스트 입력 컨트롤러의 다른 옵션(예: Scribble)을 테스트할 수 있습니다.

Testing the scribble option

조사식 앱에서 텍스트 입력을 허용하려면 다음을 수행합니다.

  1. 미리 정의된 옵션의 문자열 배열을 만듭니다.
  2. 배열, 이모지 허용 여부 및 Action 사용자가 완료되면 호출되는 배열을 사용하여 호출 PresentTextInputController 합니다.
  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

이모지는 다음과 같은 두 가지 유형이 있습니다.

  • 일반 유니코드 이모지
  • 애니메이션 이미지

사용자가 유니코드 이모지 선택 시 문자열로 반환됩니다.

애니메이션 이미지 이모지를 선택하면 result 완성 처리기에서 이모UIImage지를 NSData 포함하는 개체가 포함됩니다.

받아쓰기만 허용

제안(또는 낙서 옵션)을 표시하지 않고 사용자를 받아쓰기 화면으로 직접 연결하려면 다음을 수행합니다.

  • 제안 목록에 대해 빈 배열을 전달하고
  • set 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

완료 단추를 누르면 텍스트가 반환됩니다.