我真的想制作一个UIKeyboardTypeNumberPad的键盘,但是当按下4按钮时,它不会在文本字段中显示4,我希望它突出显示G大约5秒,而当它突出显示时,如果我再次按下它转到h然后转到i,对于所有字母,所以2会启动A然后b然后c如果多次点击?我在IOS上发现他们有一个内置的可以做到这一点,但它不完全是UIKeyboardTypeNumberPad和它的日语,它会显示,并输入美国但仍然有一些日本人很难使用,因为它不是真正的完整UIKeyboardTypeNumberPad。像0是空格或转到下一个字母,但不是日本的。那我怎么能为我的应用程序编写代码呢?
答案 0 :(得分:0)
我认为这不是一个好方法,但从技术上讲,你可以。不使用键盘,而是使用输入字段。我的意思是,例如,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;
}
答案 1 :(得分:0)
执行此操作的正确方法是使用所需的按钮和操作创建自己的“键盘”视图,并将其分配给文本字段的inputView
属性。然后系统将显示您的键盘而不是普通的系统键盘。键盘视图(或视图控制器)需要返回文本字段的引用,因此它可以使用UITextInput
方法来响应用户的触摸。
“Custom Views for Data Input” in Text, Web, and Editing Programming Guide for iOS
UITextInput Protocol Reference