添加文本到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; }
希望它可以帮助你。