我有一个UITextField,其clearButton属性设置为“编辑时”。文本字段右对齐。当我专注于要编辑的文本字段时,占位符文本不会移动,因此插入符号闪烁,占位符文本的一半被删除。
有没有人有解决方法?
答案 0 :(得分:3)
我刚刚遇到了同样的问题!对我来说它确实看起来像一个错误 - 为清除按钮保留的区域将占位符剪辑到右侧。 解决方法我发现它将清除按钮样式更改为“always”,这是一个误称,因为当占位符可见时(即文本为空时),仍然不显示清除按钮:
textField.clearButtonMode = UITextFieldViewModeAlways;
这确实意味着占位符没有完全对齐(为清除按钮留出空间,即使它不存在),如果确实显示了清除按钮,这将是正常的!这可以通过某种方式确保UITextField始终包含空格而不是空白来固定,从而强制清除按钮始终(并且这意味着始终!)显示。
答案 1 :(得分:1)
我有同样的问题,我解决了使用textfield委托方法管理buttonMode(在我的情况下我使用的是自定义rightView)。我详细介绍了这些:
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
if (textField.text.length == 0) {
textField.rightViewMode = UITextFieldViewModeNever;
} else {
textField.rightViewMode = UITextFieldViewModeAlways;
}
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
if (textField.text.length == 0) {
textField.rightViewMode = UITextFieldViewModeNever;
} else {
textField.rightViewMode = UITextFieldViewModeAlways;
}
}
- (void)textFieldDidChange:(UITextField *)textField
{
if (textField.text.length == 0) {
textField.rightViewMode = UITextFieldViewModeNever;
} else {
textField.rightViewMode = UITextFieldViewModeAlways;
}
}
textFieldDidChange:
方法是我为UIControlEventEditingChanged
控制事件添加到UITextField的自定义操作。
答案 2 :(得分:0)
我最后通过将前景颜色更改为银色/灰色来伪造占位符,当用户聚焦时,我清除了txt等。
答案 3 :(得分:0)
此问题已在iOS 5中修复:)谢谢Apple!