我有一箇中心對齊的UITextField。我想說明編輯時清除按鈕,所以我用:UITextField clearButton當它出現時調整文本字段的插入
textfield.clearButtomMode = .whileEditing
的問題是,清除按鈕出現時,它移動在文本框的左側內容的其餘部分,這是非常不和諧打字的人。
這裏有一個例證:
任何線索如何使它不能做到這一點,還是掙錢的時候,文本框變成第一響應者清除按鈕出現?
我有一箇中心對齊的UITextField。我想說明編輯時清除按鈕,所以我用:UITextField clearButton當它出現時調整文本字段的插入
textfield.clearButtomMode = .whileEditing
的問題是,清除按鈕出現時,它移動在文本框的左側內容的其餘部分,這是非常不和諧打字的人。
這裏有一個例證:
任何線索如何使它不能做到這一點,還是掙錢的時候,文本框變成第一響應者清除按鈕出現?
您可以覆蓋clearButtonRect(forBounds:)
來調用超級實現,然後存儲清除按鈕的大小。然後,您可以使用它來更新editingRect(forBounds bounds: CGRect)
中的文本字段的插頁。假設按鈕的寬度爲10,所以如果向左側和右側添加10個點插入,文本將保持居中,並且不會與按鈕重疊。唯一的缺點是,由於該邊上的插頁,文本將無法一直延伸到字段的左邊緣。
https://developer.apple.com/reference/uikit/uitextfield/1619600-clearbuttonrect https://developer.apple.com/reference/uikit/uitextfield/1619589-editingrect
您可以嘗試通過清除按鈕的寬度增加了文本框的寬度,以抵消文本的位移。或者將clearButtonMode設置爲.always –
製作您自己的清除按鈕,然後將其添加到'didBeginEditting'上的文本框中,這完全不那麼困難,但要注意左邊的移動是爲了防止文本與該按鈕重疊,這很正常 – Tj3n