我正在使用下面的代码,但由于某种原因它不起作用.任何的想法?
textField.text = "Hello"
textField.becomeFirstResponder()
textField.selectedTextRange = self.textField.textRangeFromPosition(self.textField.beginningOfDocument, toPosition: self.textField.endOfDocument)
Run Code Online (Sandbox Code Playgroud)
这就是我得到的:
其他答案都不适合我。事实证明,我需要将我的代码放在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)
我有同样的问题,我解决了这样的问题:
首先,在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)
希望这有效。
func textFieldDidBeginEditing(textField: UITextField) {
textField.selectedTextRange = self.textField.textRangeFromPosition(self.textField.beginningOfDocument, toPosition: self.textField.endOfDocument)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6262 次 |
| 最近记录: |