将提示设置为文本字段中文本的开头
Posted
技术标签:
【中文标题】将提示设置为文本字段中文本的开头【英文标题】:Setting prompt to beginning of text in text field 【发布时间】: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 被设置为某些东西。 【参考方案1】:将promptPosition
的内容移动到您的文本字段代表的didBeginEditing
。
【讨论】:
谢谢,就是这样以上是关于将提示设置为文本字段中文本的开头的主要内容,如果未能解决你的问题,请参考以下文章
文本区域 (JTextArea) 的自动文本滚动,插入符号位置设置为最后一行的开头