简短版本:如何使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/

10-14 22:40
查看更多