Den*_*er9 7 keyboard objective-c ipad ios
在iPad上......
textField.keyboardType = UIKeyboardTypeDecimalPad;
Run Code Online (Sandbox Code Playgroud)
...只显示常规键盘,但从顶部的数字开始(下面有很多标点符号).
但是输入一个数字.我只希望用户能够输入数字和小数点,就像iPhone上的UIKeyboardTypeDecimalPad一样.
有没有办法让不相关的密钥消失并让我的用户独自一人?
设置UITextField的keyboardType唯一的方便了用户输入正确的字符.即使在iPhone上,用户也可以通过硬件键盘或通过粘贴字符串来输入其他字符.
相反,实施UITextFieldDelegate的-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;
}
Run Code Online (Sandbox Code Playgroud)
或者,你可能会在用户完成输入文本,在执行验证–textFieldShouldReturn:,– textFieldShouldEndEditing:或– textFieldDidEndEditing:根据需要.