添加文本到UITextField你不能删除

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

 - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{ if (textField.text.length == 0) { textField.text = @"myText"; } return YES; } 

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

您可以在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; } 

在UITextFieldProtocolReference中签出shouldChangeCharactersInRange

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

只要用户在文本字段中input新字符或删除现有字符,文本字段就会调用此方法。

所以,你可以控制文本是否被实际改变,所以你可以在你的代理callback中插入自定义的逻辑,强制执行任何可以改变的规则。

用这个

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

希望它可以帮助你。