简短版本:如何使UITextField框删除用户第一次按键时的所有内容?在用户开始输入内容之前,我不希望删除该信息。即,在开始编辑时清除它是不够的。
长版:我有三个循环的UITextField(使用返回键并在“shouldReturn”方法中按一下按钮。UITextField中已经有文本,如果用户未输入任何内容,则直接转到在下一个UITextField中,该值应保持不变(默认行为)。
但是我希望,如果用户开始输入文字,它将首先自动清除文本。诸如突出显示整个字段,然后键入任何内容之类的操作会删除该字段,然后添加用户按键。
“在编辑开始时清除”是不好的,因为文本会立即在该字段中出现的光标上清除。那是不希望的。我以为可以在这里使用占位符,但这不能用作默认值,并且找不到默认值属性。在这方面,Highlighted和Selected属性也不起作用。
最佳答案
在BOOL
文件中声明一个.h
变量,例如。
BOOL clearField;
并实现以下委托(delegate)方法:
-(void)textFieldDidBeginEditing:(UITextField *)textField
{
clearField = YES;
}
-(void)textFieldDidEndEditing:(UITextField *)textField
{
clearField = NO;
}
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
clearField = NO;
}
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if(clearField)
{
textField.text = @""
clearField = NO;
}
}
关于ios - 用户开始输入时清除UITextField,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13417496/