今回は Xamarin.Forms において Entry コントロール(テキストボックス)の KeyBoard プロパティについて調べた結果を覚え書きしたいと思います。
KeyBoard プロパティは入力項目でスマホのシステムキーボードを指定した型で表示することができる便利な機能ですが、iOS と Android で少し挙動が異なりましたので、全ての値について検証してみました。
前提条件
・Windows10 Pro 64Bit 1803
・Visual Studio 2017 Community
・Xamarin 4.11.0.776 (NuGet Xamarin.Forms 2.4.0.282)
・macOS Mojave 10.14 / Xcode 10.1 / Xamarin.iOS 12.0.0.10
1.定義
Entry コントロールの基底クラスである InputView に Keyboard プロパティが実装されています。その Keyboard プロパティを確認すると以下の様に8つの値が定義されています。
Email / Numeric / Telephone / Url は何となく予想が付きますが、挙動には注意が必要ですし、他の値の Keyboard が今一つ不明ですね。
Keyboard.cs
namespace Xamarin.Forms
{
public class Keyboard
{
public static Keyboard Plain { get; }
public static Keyboard Chat { get; }
public static Keyboard Default { get; }
public static Keyboard Email { get; }
public static Keyboard Numeric { get; }
public static Keyboard Telephone { get; }
public static Keyboard Text { get; }
public static Keyboard Url { get; }
public static Keyboard Create(KeyboardFlags flags);
}
}
2.検証コード
以下のコードの通り実装して Android と iOS で挙動を見ていきます。
<Entry x:Name="txtPlain" Text="" Placeholder="Plain" Keyboard="Plain"/>
<Entry x:Name="txtChat" Text="" Placeholder="Chat" Keyboard="Chat"/>
<Entry x:Name="txtDefault" Text="" Placeholder="Default" Keyboard="Default"/>
<Entry x:Name="txtEmail" Text="" Placeholder="Email" Keyboard="Email"/>
<Entry x:Name="txtNumeric" Text="" Placeholder="Numeric" Keyboard="Numeric"/>
<Entry x:Name="txtTelephone" Text="" Placeholder="Telephone" Keyboard="Telephone"/>
<Entry x:Name="txtText" Text="" Placeholder="Text" Keyboard="Text"/>
<Entry x:Name="txtUrl" Text="" Placeholder="Url" Keyboard="Url"/>
3.Plain
基本的にはデフォルトのキーボードが表示されますが、英語の場合は小文字の入力モードです。iOS では入力候補が表示されません。
iOS JP

iOS EN

Andorid JP

Andorid EN

4.Chat
基本的にはデフォルトのキーボードが表示されますが、英語の場合は大文字の入力モードです。iOS では入力候補が表示されます。
iOS JP

iOS EN

Andorid JP

Andorid EN

5.Default
基本的には設定されている言語に基づくデフォルトのキーボードが表示されます。iOS では入力候補が表示されます。
iOS JP

iOS EN

Andorid JP

Andorid EN

6.Email
iOSではデフォルトのキーボードが表示されますが、Androidでは英語キーボードが表示されます。アットマークが入力しやすくなっているのが特徴です。
iOS JP

iOS EN

Andorid JP

Andorid EN

7.Numeric
基本的には数字のみのキーボードが表示されますが、Android では数値型の文字列のみ入力可能で、IP などの様に複数のカンマをもつ文字列を入力することはできません。
iOS JP

iOS EN

Andorid JP

Andorid EN

8.Telephone
基本的には数字のみのキーボードが表示されますが、ハイフンなどの記号が入力しやすくなっています。グローバルな電話番号形式に対応する為か、入力書式のチェック等は行われていないと思います。
iOS JP

iOS EN

Andorid JP

Andorid EN

9.Text
基本的にはデフォルトのキーボードが表示されますが、Chatと同じく、英語キーボードでは先頭大文字で入力できます。iOS では入力候補が表示されます。
iOS JP

iOS EN

Andorid JP

Andorid EN

10.Url
基本的には英語のキーボードが表示されますが、スラッシュなどの記号が入力しやすいようになっています。
iOS JP

iOS EN

Andorid JP

Andorid EN

最後までお読みいただきありがとうございます。
当ブログの内容をまとめた Xamarin逆引きメニュー は以下のURLからご覧になれます。
https://itblog.dynaspo.com/blog-entry-81.html
- 関連記事
-