我在我的应用中放置了一些文本字段,这些文本字段只允许数字0,1..9和.symbol。
为此,我的代码是
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
static NSCharacterSet *charSet = nil;
if(!charSet) {
charSet = [[[NSCharacterSet characterSetWithCharactersInString:@"0123456789."] invertedSet] retain];
}
NSRange location = [string rangeOfCharacterFromSet:charSet];
return (location.location == NSNotFound);
}
一切正常,
但是当我按下ABC& #+ =按钮键盘更改为其他类型。
我需要防止这种情况,用户只能使用数字和。,X键。
如果其他人看不到问题
,则其他人不活跃我怎么能这样做
任何人都可以帮助我。
提前感谢你。
答案 0 :(得分:4)
为此设计了一个键盘:UIKeyboardTypeDecimalPad
答案 1 :(得分:0)
如果您可以针对iOS 4.1及更高版本定位应用,请使用@jtbandes建议。
在iPhone SDK中使用内置键盘类型的主要优点是它们支持国际化。如果您不需要字母,只需要数字,我建议您只使用所需的键从UIButton构建自定义键盘。保持键盘不显示(textFieldShouldBeginEditing上的resignFirstResponder)。您可以在“com.apple.UIKit”包中播放“Tock.aiff”,使其看起来真实。
答案 2 :(得分:0)
如果您需要支持4.1之前的操作系统版本,您可以执行App Cubby在其某些应用中所做的操作(例如Gas Cubby) - 他们使用数字键盘键盘(UIKeyboardTypeNumberPad
)并覆盖包含左下角点的UIButton。键盘处理0-9输入,点按钮的动作配置为附加'。'到当前的字符串值。