在 iPad 上...
textField.keyboardType = UIKeyboardTypeDecimalPad;
...仅显示常规键盘,但从顶部的数字开始(下面有很多标点符号)。
但就是要输入一个数字。我只希望用户能够输入数字和小数点,就像 iPhone 上的 UIKeyboardType DecimalPad 那样。
有什么办法可以让不相关的键消失并让我的用户独自一人吗?
设置一个UITextField
's keyboardType
只会让用户更容易输入适当的字符。即使在 iPhone 上,用户也可以通过硬件键盘或粘贴字符串来输入其他字符。
相反,实施UITextFieldDelegate
's -textField:shouldChangeCharactersInRange:replacementString:
验证用户输入。您可能也不想对数字 0-9 和句点进行硬编码。例如,某些区域设置中的用户使用逗号分隔整数和小数:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *candidate = [[textField text] stringByReplacingCharactersInRange:range withString:string];
if (!candidate || [candidate length] < 1 || [candidate isEqualToString:@""])
{
return YES;
}
NSDecimalNumber *number = [NSDecimalNumber decimalNumberWithString:candidate];
if (!number || [number isEqualToNumber:[NSDecimalNumber notANumber]])
{
return NO;
}
return YES;
}
或者,您可以在用户完成输入文本时执行验证,–textFieldShouldReturn:
, – textFieldShouldEndEditing:
, or – textFieldDidEndEditing:
如预期的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)