I have UITextFields
在表格上输入值。
其中一些字段只接受数字。我在用UIKeyboardTypeNumbersAndPunctuation
对于键盘类型,以及shouldChangeCharactersInRange
来过滤字符。
此外,所有更正均被禁用:
textField.keyboardType = UIKeyboardTypeNumbersAndPunctuation;
textField.autocorrectionType = UITextAutocorrectionTypeNo;
textField.autocapitalizationType = UITextAutocapitalizationTypeNone;
在仅限数字的字段中,当触摸空格键时,键盘将更改为字母。
我知道这是默认行为。
我想忽略空格键,并且不希望更改键盘类型。
有什么方法可以改变这种默认行为吗?
PS:不能选择其他数字键盘类型。我需要标点符号!
Thanks
我认为不可能修改键盘行为。
但是,您可以实施文本字段:shouldChangeCharactersInRange:替换字符串: http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UITextFieldDelegate_Protocol/UITextFieldDelegate/UITextFieldDelegate.html#//apple_ref/doc/uid/TP40006991-CH3-SW9从 UITextFieldDelegate 协议中截取空格(和撇号),如下所示,它似乎有效:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if ([string isEqualToString:@" "] || [string isEqualToString:@"'"]) {
NSMutableString *updatedString = [NSMutableString stringWithString:textField.text];
[updatedString insertString:string atIndex:range.location];
textField.text = updatedString;
return NO;
} else {
return YES;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)