4

我想做的是在开头添加一些UITextField无法删除的文本。当用户像这样点击时,我会添加此文UITextField本:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{

    if (textField.text.length == 0) {
        textField.text = @"myText";
    }

    return YES;
}

如何防止用户以正常方式删除此文本?(例如,无需UILabel在 TextField 顶部添加单独的)。提前致谢!

4

3 回答 3

3

shouldChangeCharactersInRange您可以在委托方法中实现此代码。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    if (textField.text.length == 1 && [string isEqualToString:@""]) {//When detect backspace when have one character. 
        textField.text = @"myText";
    }
    return YES;
}
于 2013-04-19T11:29:56.010 回答
1

签出UITextFieldProtocolReference中的 shouldChangeCharactersInRange

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

每当用户在文本字段中键入新字符或删除现有字符时,文本字段都会调用此方法。

因此,您可以控制文本是否实际发生更改,以便您可以在该委托回调中插入自定义逻辑,以执行有关可以更改内容的任何规则。

于 2013-04-19T11:27:51.203 回答
0

用这个

  - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    if ([[textField text] length]==LENGTH_OF_TEXT && [string isEqualToString:@""])
    {
        return NO;
    }
else 
return YES;
}

希望它可以帮助你。

于 2013-04-19T11:33:43.843 回答