簡體   English   中英

UITextField清除帶有占位符錯誤的按鈕?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM