gpt4 book ai didi

ios - 光标位于 UITextField 的开头

转载 作者:行者123 更新时间:2023-11-28 12:38:22 25 4
gpt4 key购买 nike

ViewController 由两个名为 textName 和 textEmail 的 TextField 组成。 View Controller 加载时光标位于 textName 上。 textName 包含预填充的单词“@gmail.com”。

在从 textName 按下键盘的返回键时,焦点将移至文本字段 textEmail。默认情况下,光标位于“@gmail.com”一词之后

我想把光标放在开头。即在@gmail.com 之前

这是我的代码。当我从 textName 按下返回键时,光标会转到 textEmail 的开头。但是当我直接点击 textEmail 时,光标出现在预填充的单词之后。请帮我!

func textFieldShouldReturn(textField: UITextField) -> Bool {

if textField == self.textName{
textEmail.becomeFirstResponder()
let desiredPosition = textEmail.beginningOfDocument
textEmail.selectedTextRange = textEmail.textRangeFromPosition(desiredPosition, toPosition: desiredPosition)
}

if textField == self.textEmail{


dismissViewControllerAnimated(true, completion: nil)

}

return true
}

请注意,我确实尝试过编辑 textEmail 的开始操作并添加了下面的代码,但它也没有用。

let desiredPosition = textEmail.beginningOfDocument
textEmail.selectedTextRange = textEmail.textRangeFromPosition(desiredPosition, toPosition: desiredPosition)

最佳答案

试试这个:

func textFieldDidBeginEditing(_ textField: UITextField) {
if textField == self.textName{
let beginning = textField.beginningOfDocument
textField.selectedTextRange = textField.textRange(from: beginning, to: beginning)
}
}

因此删除 textEmail.becomeFirstResponder() 并使用 textField.textRange 而不是 textEmail.textRangeFromPosition

并且在 textFieldDidBeginEditing 函数内部使用参数 textField,如我上面的示例所示。

关于ios - 光标位于 UITextField 的开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40233386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com