1

背景: 我有一个 UITableView,它有三行,其中包含从 TableDataSource 填充的自定义 UITextField。这些文本字段中的默认文本也是从数据源填充的(数据库字段的默认值)。

当用户选择/单击特定的 UITextField 时,我能够自动清除 UITextField。

问题: 如果用户选择了一个特定的 UITextField,然后移动到另一个 UITextField 而不编辑文本,那么我希望原始的默认文本重新出现。我尝试在委托的“didEndEditing”方法中将 UITextField 设置为 nil,但没有成功。

有人可以建议他们是否知道实现此目的的方法吗?

4

2 回答 2

2

您可以使用 的placeholder属性简单地做到这一点UITextField,但是文本会以一种有点模糊的方式出现,如果您想显示以前的值,那么您可以使用以下解决方案:

您可以使用textFieldDidEndEditing委托方法来完成。

 - (void)textFieldDidEndEditing:(UITextField *)textField
{
   if(textField.text.lenght == 0)
   {
      textField.text = yourPreviousText;
   }
}

而在textFieldShouldBeginEditing

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
   yourPreviousText = textField.text;
}

yourPreviousText 是NSString在类范围内声明的对象。

于 2013-01-02T05:10:27.650 回答
0

解决方案:我正在使用 UITextfield.text 属性设置占位符文本。我应该使用 UITextField.placeholder 属性。自动设置此属性可确保占位符文本消失并根据用户执行的编辑重新出现。在试图找出用户输入/未输入的内容方面,省去了很多工作。

于 2013-01-02T05:08:10.937 回答