我通過這篇文章Getting and Setting Cursor Position of UITextField and UITextView in Swift我得到的問題是選擇文本。設置UITextField的光標位置不工作(swift)
我遵循引用的帖子中的例子,我仍然沒有看到任何結果。 我創建了一個基本的SingleViewApplication,其中只有一個UITextField。
文本域在viewDidLoad中
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
textField.text = "foobar" }
在@IBAction編輯設置爲「foobar的」難道我開始儘量選擇使用這篇文章所描述的方法在整個案文見下文。
@IBAction func EDB(_ sender: UITextField) {
let startPosition = textField.beginningOfDocument
let endPosition = textField.endOfDocument
textField.selectedTextRange = textField.textRange(from: startPosition, to: endPosition )
}
我跳過了會選擇我textField中的所有文本。
它沒有。
我把兩個斷點,以顯示我的文本框的選擇範圍就行 讓指定startPosition .... 和一個最後一行 這些斷點執行婆textField.selectedTextRange!並繼續。
它確認其能有效地改變我的TextField的範圍
< _UITextKitTextRange:0x7fa42bb0d140>(6,0)的F
< _UITextKitTextRange:0x7fa42b922640>(0,6)的F
但是在用戶界面上沒有可見的選擇,光標停留在我的textField的末尾。
我缺少什麼讓UI顯示我選擇的範圍?
基本上我想在用戶輸入版本時預先選擇我的UItextField的特定範圍的文本。
延遲行動確實解決問題。 –
延遲行動,以選擇原來的代碼我張貼的作品 讓指定startPosition = textField.beginningOfDocument 讓終端位置= textField.endOfDocument textField.selectedTextRange = textField.textRange(來自:指定startPosition,到:終端位置) eld.selectAll( textField) –
和 textField。selectAll(textField)解決方案 因此,我假設範圍必須在鍵盤和textField被刷新後設置,如果在早期完成,則UI不會考慮範圍 –