Sno*_*ash 22 iphone uitextfield
在Xcode4中,我为UITextField创建了一些占位符文本,我希望它能清除用户点击框中的内容.
因此,在文本字段的属性检查器中,我单击了"编辑开始时清除"但是当我点击文本框时它不会立即删除文本(它只在您开始键入时消失).
有没有办法在文本框中点击时立即删除占位符文本?
Mat*_*uch 68
使您的ViewController成为textField的委托并实现这两个方法:
- (void)textFieldDidBeginEditing:(UITextField *)textField {
textField.placeholder = nil;
}
- (void)textFieldDidEndEditing:(UITextField *)textField {
textField.placeholder = @"Your Placeholdertext";
}
Run Code Online (Sandbox Code Playgroud)
Matthias Bauch提供的解决方案效果很好,但是当您有多个人UITextField担心时会发生什么?现在你必须识别哪些UITextField被称为 textFieldDidEndEditing:textField(可能通过使用标签属性的),并导致更多不必要的代码和逻辑.
一个更简单的解决方案:只需为占位符文本指定一个清晰的颜色,完成编辑后,恢复为原始颜色.通过这种方式,您textFieldDidEndEditing:textField可以textField在Bauch的解决方案中将其相应的文本标识为无效.
- (void)textFieldDidBeginEditing:(UITextField *)textField {
[textField setValue:[UIColor clearColor] forKeyPath:@"_placeholderLabel.textColor"];
}
- (void)textFieldDidEndEditing:(UITextField *)textField {
[textField setValue:[UIColor placeholderColor] forKeyPath:@"_placeholderLabel.textColor"];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40273 次 |
| 最近记录: |