我想要做的是在UITextField
的开头添加一些无法删除的文字。当用户点击UITextField
时,我会添加此文字:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
if (textField.text.length == 0) {
textField.text = @"myText";
}
return YES;
}
如何阻止用户以正常方式删除此文本? (例如,没有在TextField顶部添加单独的UILabel
)。
提前谢谢!
答案 0 :(得分:2)
您可以在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;
}
答案 1 :(得分:1)
Checkout shouldChangeCharactersInRange在UITextFieldProtocolReference
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
每当用户键入新文本时,文本字段都会调用此方法 文本字段中的字符或删除现有字符。
因此,您可以控制文本是否实际更改,以便您可以在该委托回调中插入自定义逻辑,从而强制执行有关可以更改的内容的任何规则。
答案 2 :(得分: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;
}
希望它对你有所帮助。