在用户开始键入时清除UITextField

Mad*_*vad 6 default clear textfield ios

简短版本:如何使UITextField框删除用户首次按键上的所有内容?在用户开始输入内容之前,我不希望删除信息.即,在开始编辑时清除它是不够的.

long version:我有三个循环的UITextField(使用返回键并在"shouldReturn"方法中捕获按钮.UITextField中已有文本,如果用户没有输入任何内容,只是转到下一个UITextField ,值应保持不变(默认行为).

但我希望如果用户开始输入,它会自动清除文本.类似于整个字段突出显示,然后键入任何东西删除fiels然后添加用户按键.

"编辑开始时清除"并不好,因为文本会立即清除出现在字段中的光标.那是不可取的.我以为我可以在这里使用占位符,但这不能作为默认值,我找不到默认值属性.突出显示和选定属性在这方面也没有做任何事情.

Mid*_* MP 2

像这样在文件中声明一个BOOL变量.h

BOOL clearField;
Run Code Online (Sandbox Code Playgroud)

并实现委托方法,例如:

-(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;
  }
}
Run Code Online (Sandbox Code Playgroud)