Aracılığıyla paylaş


Xamarin'de watchOS Metin Girişi ile çalışma

Apple Watch, kullanıcıların metin girişine yönelik bir klavye sağlamaz, ancak bazı izleme dostu alternatifleri destekler:

  • Önceden tanımlanmış bir metin seçenekleri listesinden seçim yaparak,
  • Siri dikte etme,
  • Emoji seçme,
  • Harf harf el yazısı tanımayı karalama (watchOS 3'te tanıtıldı).

Simülatör şu anda dikteyi desteklememektedir ancak burada gösterildiği gibi metin giriş denetleyicisinin Karalama gibi diğer seçeneklerini test edebilirsiniz:

Testing the scribble option

İzleme uygulamasında metin girişini kabul etmek için:

  1. Önceden tanımlanmış seçeneklerden oluşan bir dize dizisi oluşturun.
  2. Emojiye izin verilip verilmeyeceği ve kullanıcı tamamlandığında çağrılan bir Action diziyle çağrısı PresentTextInputController yapabilirsiniz.
  3. Tamamlama eyleminde, giriş sonucunu test edin ve uygulamada uygun eylemi gerçekleştirin (büyük olasılıkla bir etiketin metin değerini ayarlayın).

Aşağıdaki kod parçacığı kullanıcıya önceden tanımlanmış üç seçenek sunar:

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);
    }
});

Sabit WKTextInputMode listesi üç değere sahiptir:

  • Düz
  • AllowEmoji
  • AllowAnimatedEmoji

Düz

Düz mod ayarlandığında kullanıcı şunları seçebilir:

  • Dikte
  • Karalama veya
  • uygulamanın sağladığı önceden tanımlanmış bir listeden.

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

Sonuç her zaman bir NSObject öğesine atanabilecek bir stringolarak döndürülür.

Emoji

İki tür emoji vardır:

  • Normal Unicode emojisi
  • Animasyonlu resimler

Kullanıcı bir Unicode emojisi seçtiğinde dize olarak döndürülür.

Animasyonlu resim emojisi seçilirse result tamamlama işleyicisindeki öğesi emojisini UIImageiçeren bir NSData nesne içerir.

Yalnızca DikteYi Kabul Etme

Kullanıcıyı herhangi bir öneri (veya Karalama seçeneği) göstermeden doğrudan dikte ekranına götürmek için:

  • öneriler listesi için boş bir dizi geçirin ve
  • öğesini ayarlayın 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);
    }
});

Kullanıcı konuşurken, izleme ekranı anlaşıldığı gibi metni içeren aşağıdaki ekranı görüntüler (örneğin, "Bu bir testtir"):

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

Bitti düğmesine bastıktan sonra metin döndürülür.