【发布时间】:2016-09-20 15:50:58
【问题描述】:
我正在尝试根据这个接受的答案 Getting and Setting Cursor Position of UITextField and UITextView in Swift 将提示设置为 UITextField 中某些文本的开头
但是,提示设置在末尾,而不是开头。 iOS10/Swift 3 中是否发生了一些变化以使该问题的答案中的代码无效?
@IBOutlet weak var mdnTextField: UITextField!
mdnTextField.text = "Some text"
mdnTextField.tintColor = UIColor.textFieldPromptLightGray()
mdnTextField.textColor = UIColor.textFieldPromptLightGray()
let promptPosition = mdnTextField.beginningOfDocument
mdnTextField.selectedTextRange = mdnTextField.textRange(from: promptPosition, to: promptPosition)
【问题讨论】:
-
我认为很大程度上取决于您运行该代码的确切时间。您可以修改您的问题以显示一些上下文吗?您没有提供足够的代码让我自己进行实验。
-
在 viewDidLoad 中,我发现使用此代码然后调用 if let selectedRange = mdnTextField.selectedTextRange 不会评估因此 selectedTextRange 没有设置。
-
原因是因为 mdnTextField.beginningOfDocument 未初始化(endOfDocument 也是如此),即使 mdnTextField.text 被设置为某些东西。