我想将最大长度设置为UITexField
,但这会插入UIAlertView
,
我正试图在这个美丽的网站上找到解决这个问题的正确信息,但没有任何内容。
有人可以帮助我吗?
答案 0 :(得分:2)
我认为这是UITextFieldDelegate方法的更好实现,因为它不会删除用户眼前的文本结尾,它只是阻止用户输入更多文本。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
if (newString.length > MAXLENGTH)
{
return NO;
}
return YES;
}
不要忘记实现UITextFieldDelegate
协议,并将控制器设置为文本字段的委托(请参阅Anoop Vaidya答案)
答案 1 :(得分:0)
您可以通过
访问alertView的textFieldUITextField *theTitleTextField = [alertView valueForKey:@"_bodyTextLabel"];
如果您想要添加自己的文字字段,请按照 Martin R 的建议使用textFieldAtIndex:
。
然后实施UITextFieldDelegate
协议。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if ([textField.text length] > MAXLENGTH) {
textField.text = [textField.text substringToIndex:MAXLENGTH-1];
return NO;
}
return YES;
}