0

我想为我的设置一个最大长度,UITexField但它被插入了UIAlertView,我试图在这个美丽的网站上找到解决这个问题的正确信息,但什么都没有。

有人可以帮我吗?

4

2 回答 2

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 答案)

于 2013-04-12T08:18:28.947 回答
0

您可以通过以下方式访问 alertView 的 textField

UITextField *theTitleTextField = [alertView valueForKey:@"_bodyTextLabel"];

如果您想找到添加的文本字段,请按照Martin RtextFieldAtIndex:的建议使用。

然后实现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;
}
于 2013-03-23T16:57:29.610 回答