在UIAlertView中设置UITextField的最大长度

时间:2013-03-23 16:31:24

标签: ios objective-c uitextfield uialertview

我想将最大长度设置为UITexField,但这会插入UIAlertView, 我正试图在这个美丽的网站上找到解决这个问题的正确信息,但没有任何内容。

有人可以帮助我吗?

2 个答案:

答案 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的textField
UITextField *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;
}