在通过数据源创建的UITextField中显示占位符文本

时间:2013-01-02 04:49:28

标签: ios uitableview uitextfield uitextfielddelegate

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

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

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

有人可以告诉他们是否知道如何实现这一目标?

2 个答案:

答案 0 :(得分:2)

您可以使用placeholder的{​​{1}}属性轻松完成此操作,但文本显示方式有点模糊,如果您想显示之前的值,则可以使用以下解决方案:

您可以使用UITextField委托方法执行此操作。

textFieldDidEndEditing

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

textFieldShouldBeginEditing

yourPreviousText是在类范围内声明的- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { yourPreviousText = textField.text; } 对象。

答案 1 :(得分:0)

<强>解决方案: 我使用UITextfield.text属性设置占位符文本。我宁愿使用UITextField.placeholder属性。自动设置此属性可确保占位符文本消失并根据用户执行的编辑重新显示。在试图找出用户输入/未输入的内容方面,需要花费大量工作。