私は現在、主に日本語 (セカンダリ英語) 市場向けのアプリケーションを開発していますUIKeyboardType
。テンキー/フリック スタイルの日本語キーボードを使用すると、テキスト フィールドを設定して実際に動作させることができないことがわかりました。UIKeyboardType
適切に対応しているはずなのに、
userIdField = [[[UITextField alloc] initWithFrame:CGRectMake(120, 5, 185, 35)]autorelease];
userIdField.delegate = self;
userIdField.keyboardType = UIKeyboardTypeASCIICapable;
userIdField.autocorrectionType = UITextAutocorrectionTypeNo;
userIdField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
userIdField.returnKeyType = UIReturnKeyDone;
userIdField.autocapitalizationType = UITextAutocapitalizationTypeNone;
userIdField.backgroundColor = [UIColor clearColor];
[cell addSubview:userIdField];
テキストフィールドをタップすると、デフォルトの日本語テンキー スタイルのキーボードが開きます。UIKeyboardTypeASCIICapable
、UIKeyboardTypeURL
、UIKeyboardTypeEmailAddress
を試しましたが、UIKeyboardTypeNamePhonePad
常にデフォルトのテンキー日本語キーボードが表示されます。設定は問題なく機能するため、コードが読み取られていることはわかっていますUIKeyboardTypePhonePad
が、何らかの理由で、電話にはデフォルトの日本語のテンキー キーボードしか表示されません。
これを修正する方法はありますか、それとも昔から存在していたバグですか? アルファベット、数字、"_/." 文字のみを入力できるキーボードをユーザーに強制的に使用させるにはどうすればよいですか?
ハングル (韓国語) キーボードを使用すると、散発的に動作します。ASCII キーボードは正常に起動し、URL キーボードは .com ボタンでハングルを起動します。ASCIICapable の場合、UITextInputTraits.h ファイルを見ると、次のように書かれています:
UIKeyboardTypeASCIICapable, // Displays a keyboard which can enter ASCII characters, non-ASCII keyboards remain active
ハングルと日本語の両方が非 ASCII であるため意味がありませんが、ハングル + ASCIICapable = ASCII (非 ASCII であるためハングルである必要があります) 、一方、日本語テンキー + ASCIICapable = 日本語テンキー。
プログラムでキーボード言語を変更することに関する他の投稿を見ましたが、これは実行できませんが、この質問は、UIKeyboardType で指定された種類のキーボードが表示されない理由を尋ねることに重点を置いています。