0〜9の数字なしでデフォルトのUIKeyboardTypeを表示するUIKeyboardが必要です。これらのボタンを非表示にするだけです。
キーボードの別のボタンにアクセスして、設定してから非表示にする方法はありますか?いいえの場合、「。?123」ボタンが押されたことを検出し、最初の行をカバーするサブビューを追加できますか?または、より良いアプローチへのポインタはありますか?
0〜9の数字なしでデフォルトのUIKeyboardTypeを表示するUIKeyboardが必要です。これらのボタンを非表示にするだけです。
キーボードの別のボタンにアクセスして、設定してから非表示にする方法はありますか?いいえの場合、「。?123」ボタンが押されたことを検出し、最初の行をカバーするサブビューを追加できますか?または、より良いアプローチへのポインタはありますか?
数字キーと句読点キーへのアクセスを無効にするためのパブリック API はありません。キーボードのビュー階層を掘り下げて数字トグル キーを非表示にすることもできますが、将来的には壊れる可能性があります (キーボード ビュー階層は過去に変更されています)。
テキスト コントロールのデリゲートで気に入らない文字を除外する方がはるかに簡単です。たとえば、ユーザーに文字の入力のみを許可したいとします。がある場合はUITextField
、そのデリゲートをビュー コントローラーに設定し、ビュー コントローラーにこのメソッドを実装します。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSRange all = NSMakeRange(0, string.length);
if (all.length == 0) {
// deletion
return YES;
}
NSRange letters = [string rangeOfCharactersFromSet:[NSCharacterSet letterCharacterSet]];
return NSEqualRanges(all, letters);
}
がある場合はUITextView
、メソッドが呼び出されtextView:shouldChangeTextInRange:replacementText:
ます。