0

我需要一个 UIKeyboard 来显示没有数字 0-9 的默认 UIKeyboardType。我只需要隐藏那些按钮。

有没有办法访问键盘的不同按钮,以便我可以设置然后隐藏?如果不是,我可以检测何时按下“.?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 回答