0

0〜9の数字なしでデフォルトのUIKeyboardTypeを表示するUIKeyboardが必要です。これらのボタンを非表示にするだけです。

キーボードの別のボタンにアクセスして、設定してから非表示にする方法はありますか?いいえの場合、「。?123」ボタンが押されたことを検出し、最初の行をカバーするサブビューを追加できますか?または、より良いアプローチへのポインタはありますか?

4

1 に答える 1

3

数字キーと句読点キーへのアクセスを無効にするためのパブリック 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:ます。

于 2012-06-20T22:53:54.763 に答える