[英]UITextField Clear Button with Placeholder bug?
我有一個UITextField,其clearButton屬性設置為“編輯時”。 文本字段右對齊。 當我將焦點放在要編輯的文本字段上時,占位符文本不會移動,因此插入符號會閃爍,並且占位符文本會被擦除一半。
有人有解決方法嗎?
我剛剛遇到了完全相同的問題! 在我看來,這確實像個蟲子-為清除按鈕保留的區域將占位符向右裁剪。 解決方法我發現將清除按鈕樣式更改為“ always”,這是用詞不當,因為實際上在占位符可見時(即,當文本為空時)仍不顯示清除按鈕:
textField.clearButtonMode = UITextFieldViewModeAlways;
這確實意味着占位符沒有完全向右對齊(即使沒有顯示清除按鈕,也沒有為其留出空間),如果確實顯示了清除按鈕,那會很好! 可以通過確保UITextField始終包含空格而不是空格來解決此問題,從而強制將clear按鈕始終顯示(也就是始終顯示!)。
我遇到了同樣的問題,我解決了使用文本字段委托方法管理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中。
我最終通過將前景色更改為銀色/灰色來偽造占位符,並且當用戶聚焦時,我清除了txt等。
此問題已在iOS 5中修復:)謝謝蘋果!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.