UITextField 将光标设置为开始文本位置

Posted

技术标签:

【中文标题】UITextField 将光标设置为开始文本位置【英文标题】:UITextField set cursor to start text position 【发布时间】:2013-04-10 16:19:22 【问题描述】:

我需要移动光标以在文本字段上设置焦点时开始文本位置。可以吗?

【问题讨论】:

【参考方案1】:

将您的视图控制器(或其他适当的对象)设置为文本字段的delegate,并像这样实现textFieldDidBeginEditing: 方法:

- (void)textFieldDidBeginEditing:(UITextField *)textField

    UITextPosition *beginning = [textField beginningOfDocument];
    [textField setSelectedTextRange:[textField textRangeFromPosition:beginning
                                                          toPosition:beginning]];

请注意,setSelectedTextRange:UITextInput 的协议方法(UITextField 实现),因此您不会直接在 UITextField 文档中找到它。

【讨论】:

我设置了此代码,但它对我不起作用,并且文本字段的光标未设置在文本末尾。可以帮我吗?【参考方案2】:
self.selectedTextRange = [self textRangeFromPosition:newPos toPosition:newPos];

查看Finding the cursor position in a UITextField

【讨论】:

【参考方案3】:

如果有人在 Swift 中寻找答案:

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

但我相信这只适用于光标已经在文本字段中的情况。您可以使用它来做到这一点:

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

【讨论】:

当我使用此代码并在文本的第一个选择我的光标时,首先设置光标但我不想这样做

以上是关于UITextField 将光标设置为开始文本位置的主要内容,如果未能解决你的问题,请参考以下文章

iOS 以编程方式添加 UITextField 在编辑时不会将文本滚动到光标位置

UITextField 起始光标位置错误

如何将设置为 uitextfield 的框架更改为 uibutton

将插入符号/光标位置设置为字符串值 WPF 文本框的末尾

在UITextField中禁用放大镜

在 UITextField 中添加删除绑定(绑定删除)