NOTE: Not to set the Charecter limit, asking for Value of the field limit
在我的应用程序中,我有一个uitext字段来输入项目的费用。
我可以限制文本字段只输入数字值,也可以输入一些特定数量的字符,
但是我需要重新定义文本字段以仅允许某些范围的费用。
即需要限制成本仅限800 / - 仅限
如果用户尝试输入900或超过800的某些内容,则不再允许输入,
我们怎样才能实现任何帮助...谢谢
答案 0 :(得分:2)
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if (textField == myTextField) {
if (string.length == 0) {
return YES;
}
NSString *editedString = [myTextField.text stringByReplacingCharactersInRange:range withString:string];
NSInteger editedStringValue = editedString.integerValue;
return editedStringValue <= 800;
}
return YES;
}
答案 1 :(得分:0)
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
if([string isEqualToString:@""]) {
return YES;
}
NSString *stringToValidate= [textField.text stringByReplacingCharactersInRange:range withString:string]];
if([stringToValidate doubleValue]>800){
return NO;
}
return YES;
}
检查上面的代码,它可以帮助你
答案 2 :(得分:0)
首先设置文本域代理...
yourTextField.delegate=self
然后,
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
NSString *str=[NSString stringWithFormat:@"%@%@",textField.text,string];
if ([str integerValue]>800) {
return NO;
}
else{
return YES;
}
}
如果您有多个文本字段,则需要指定标记值并添加另一个条件来标识文本字段,如果只有一个文本字段,则使用相同的代码。
答案 3 :(得分:-1)
试试这个
处理&#34;编辑已更改&#34;事件
[textField addTarget:self
action:@selector(editingChanged:)
forControlEvents:UIControlEventEditingChanged];
和选择器:
-(void) editingChanged:(id)sender {
// your code
}