将文本添加到您无法删除的 UITextField
Posted
技术标签:
【中文标题】将文本添加到您无法删除的 UITextField【英文标题】:Adding text to UITextField you can't delete 【发布时间】:2013-04-19 11:22:16 【问题描述】:我想做的是在UITextField
的开头添加一些无法删除的文本。当用户像这样点击UITextField
时,我会添加此文本:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
if (textField.text.length == 0)
textField.text = @"myText";
return YES;
如何防止用户以正常方式删除此文本? (例如,没有在 TextField 顶部添加单独的 UILabel
)。
提前致谢!
【问题讨论】:
您不想在向文本字段中添加任何文本后删除,对吧?如果是.. 做 userInteractionEnables=NO.. 就是这样。 @VSN - 我认为他只想禁用部分文本可编辑。因此,他需要挂钩到文本更改的决策过程 【参考方案1】:您可以在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;
【讨论】:
【参考方案2】:结帐UITextFieldProtocolReference中的shouldChangeCharactersInRange
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
每当用户输入新的文本时,文本字段都会调用此方法 文本字段中的字符或删除现有字符。
因此,您可以控制文本是否实际发生更改,以便您可以在该委托回调中插入自定义逻辑,以强制执行有关可以更改内容的任何规则。
【讨论】:
【参考方案3】:使用这个
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
if ([[textField text] length]==LENGTH_OF_TEXT && [string isEqualToString:@""])
return NO;
else
return YES;
希望对你有帮助。
【讨论】:
不需要,先生,@mani 答案已经有效!无论如何感谢您的努力!以上是关于将文本添加到您无法删除的 UITextField的主要内容,如果未能解决你的问题,请参考以下文章
无法将 UITextField 添加到 UIScrollView