UI键盘类型数字键盘类型字母



我真的想制作一个UIKeyboardTypeNumberPad键盘,但当按下4按钮时,它不会在文本字段中显示4,而是希望它高亮显示G大约5秒,当它高亮显示时,如果我再次按下,它会变为h,然后变为I,对于所有字母,所以如果多次单击,2会开始a,然后是b,然后是c?我在IOS上发现他们有一个内置的软件可以做到这一点,但它并不完全是UIKeyboardTypeNumberPad,对于日语来说,它会在美国显示和键入,但仍然有一些日语,很难使用,因为它不是真正的完整UIKeyboard TypeNumberpad。像0是空格或转到下一个字母,但不是在日语字母上。那么我该如何为我的应用程序编写代码呢?

正确的方法是使用所需的按钮和操作创建自己的"键盘"视图,并将其分配给文本字段的inputView属性。然后系统将显示您的键盘,而不是普通的系统键盘。键盘视图(或视图控制器)将需要一个返回文本字段的引用,因此它可以使用UITextInput方法来响应用户的触摸。

iOS版文本、Web和编辑编程指南中的"自定义数据输入视图"
UITextInput协议参考

我认为这不是一个好方法,但从技术上讲你可以。不使用键盘,而是使用输入字段。我的意思是,例如,UITextViewDelegate定义了–textView:shouldChangeTextInRange:replacementText:方法。当用户尝试更改UITextView中的文本时,将调用此方法。然后,您可以手动更改文本,并返回NO以忽略用户输入。

在下面的示例中,当用户键入"0"时,将添加"G"(以说明我的想法)。

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    NSString *correctReplacement = [text stringByReplacingOccurrencesOfString:@"0" withString:@"G"];
    textView.text = [textView.text stringByAppendingString:correctReplacement];
    return NO;
}

最新更新