我想检测何时在uikeyboard类型“UIKeyboardTypeNumbersAndPunctuation”上点击“ABC”按钮,以及我想检测何时在字母键盘类型上点击“123”按钮。
我正在使用“UITextview”控件
请允许我,谢谢你
答案 0 :(得分:1)
据我所知,你不想替换想要检测的数字是按下了以下按钮?
如果是这样,据我所知,这是不正式的。 Apple不提供“UIKeyboardTypeDidChange”通知,并且您无法在遵守指南的情况下编辑/更改键盘视图。如果你尝试过,你的申请可能会被拒绝。
(这并不是说如果你在键盘视图中砍掉它就不可能。)
答案 1 :(得分:1)
如果您的目标是iOS 4.1及更高版本,则可以使用UIKeyboardTypeDecimalPad。如果您需要支持旧版本,需要小数点,并且不需要任何其他内容,则必须创建自定义键盘。
如果要在不删除其他键的情况下过滤掉其他键,请将某个对象指定为文本字段的委托。该对象应包含以下代码:
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
NSCharacterSet *nonNumberSet = [[NSCharacterSet characterSetWithCharactersInString:@"0123456789."] invertedSet];
return([text stringByTrimmingCharactersInSet:nonNumberSet].length > 0)
//or
NSRange location = [string rangeOfCharacterFromSet:nonNumberSet];
return (location.location == NSNotFound);
}
对于字母和其他你使用上面代码的代码^ [0-9a-zA-Z]。我认为它对你有用。有一个感恩节
答案 2 :(得分:-1)
use - (void)textViewDidChange:(UITextView *)textView的textView委托协议。这应该可以解决你的问题。