我是iPhone平台的新程序员。我想对文本字段应用限制,用户只输入数值而不是任何字符。那么请告诉我如何应用这些限制并在键盘上添加完成按钮?所以我只能使用数字键盘。如果我只使用数字键盘,那么用户只输入数值,那么如何在键盘上添加完成按钮?简而言之,我如何在键盘上添加完成按钮并对字符值应用限制?
答案 0 :(得分:2)
以下方法确保用户只能输入数字
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber* myNumber;
NSString* myString = [textField.text stringByReplacingCharactersInRange:range withString:string];
range = NSMakeRange(0, [myString length]);
[numberFormatter getObjectValue:&myNumber forString:myString range:&range error:nil];
if (([myString length] > 0) && (myNumber== nil || range.length < [myString length])) {
return NO;
}else {
return YES;
}
}
当然,您可以设置
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
答案 1 :(得分:0)
您应该将文本字段输入类型设置为键盘并实现UITextFieldDelegate并从textField返回NO:shouldChangeCharactersInRange:replacementString:每当一个字符不在您接受的子集中时(0-9和您想要允许的任何标点符号)。如果用户粘贴,这将导致文本字段忽略任何其他输入。
对于完成按钮,您可以添加一个可以取消键盘的外部按钮,也可以创建一个带键盘和完成按钮的输入视图。