我的 IB 中有一个 UITextField,我想检查用户是否只输入了数字(无字符)并获取整数值。
我这样得到 UITextField 的整数值:
int integer = [myUITexrtField.text intValue];
当我输入一个字符 ( , ; . ) 时,它返回 0 并且我不知道如何检测它不仅仅是数字。
我该怎么办?
最佳答案
如下实现 shouldChangeCharactersInRange 方法不允许用户输入非数字字符。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSCharacterSet *nonNumberSet = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];
return ([string stringByTrimmingCharactersInSet:nonNumberSet].length > 0) || [string isEqualToString:@""];
}
如果字符串是数字,则返回 YES,否则返回 NO。 [string isEqualToString@""] 是支持退格键删除。
我喜欢这种方法,因为它很干净。
关于Iphone UITextField 只有整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2719680/