如何使用Swift选择UITextField中的所有文本

Edu*_*rdo 8 uitextfield swift

我正在使用下面的代码,但由于某种原因它不起作用.任何的想法?

textField.text = "Hello"

textField.becomeFirstResponder()

textField.selectedTextRange = self.textField.textRangeFromPosition(self.textField.beginningOfDocument, toPosition: self.textField.endOfDocument)
Run Code Online (Sandbox Code Playgroud)

这就是我得到的:

这就是我得到的:

Ant*_*ton 7

其他答案都不适合我。事实证明,我需要将我的代码放在viewDidAppear而不是viewDidLoad

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    
    textField.becomeFirstResponder()
    textField.selectedTextRange = textField.textRange(from: textField.beginningOfDocument, to: textField.endOfDocument) 
}
Run Code Online (Sandbox Code Playgroud)

还有一些其他方法可以选择其他人可能认为有用的所有文本:

// Select all without showing menu (Cut, Copy, etc)
textField.selectAll(nil)

// Select all and show menu
textField.selectAll(self)
Run Code Online (Sandbox Code Playgroud)


Cau*_*ini 5

我有同样的问题,我解决了这样的问题:

首先,在ViewController中实现UITextFieldDelegate

class ViewController :  UITextFieldDelegate
Run Code Online (Sandbox Code Playgroud)

然后,将textField委托设置为"self"

textField.delegate = self
Run Code Online (Sandbox Code Playgroud)

然后,将此函数添加到ViewController类

func textFieldDidBeginEditing(textField: UITextField) {
    textField.selectedTextRange = textField.textRangeFromPosition(textField.beginningOfDocument, toPosition: textField.endOfDocument)
}
Run Code Online (Sandbox Code Playgroud)

如果您已经将ViewController用作其他不希望以这种方式运行的TextField的委托,则可以使用开关,如下所示:

func textFieldDidBeginEditing(textField: UITextField) {
    switch textField {
         case yourTextField:
              textField.selectedTextRange = textField.textRangeFromPosition(textField.beginningOfDocument, toPosition: textField.endOfDocument)
              break;

         case default:
              break;
    }
}
Run Code Online (Sandbox Code Playgroud)


ZHZ*_*ZHZ 4

希望这有效。

func textFieldDidBeginEditing(textField: UITextField) {
    textField.selectedTextRange = self.textField.textRangeFromPosition(self.textField.beginningOfDocument, toPosition: self.textField.endOfDocument)
}
Run Code Online (Sandbox Code Playgroud)