ios - 在 Objective-C 中加载时将光标移动到预填充 Textview 的开头

标签 ios objective-c uitextview uitextrange

从 UITextView 预填充一些文本的代码加载 View Controller 时,我希望光标位于文本的开头而不是结尾。

但是下面的代码没有效果。光标仍出现在预填充文本的末尾。

如何将光标移到文本的开头?

   self.myTextView.text = @"Text that should go after cursor";
    [self.myTextView becomeFirstResponder];      
    UITextPosition* start = self.myTextView.beginningOfDocument;
    UITextRange *newRange = [self.myTextView textRangeFromPosition:start toPosition:start];
NSLog("newRange is%@",newRange);
    [self.myTextView setSelectedTextRange:newRange];

注意,newRange 记录为 <_UITextKitTextRange: 0x17463f0c0> (0, 0)F 所以我认为下一行实际上并没有改变范围。但我不知道还有其他方法可以做到这一点。

最佳答案

我发现你打印错了,少了一个@

NSLog(@"newRange is%@",newRange);

然后我发现你的代码有效,光标可以定位到最前面

我用模拟器测试了iOS 9.1iOS 10.1iOS 11.1iOS 12.4,都是这是有效的。不知道你的环境怎么样。

还有一点需要注意的是,在执行那段代码之前,确保myTextView已经创建成功。我在测试时使用了storyboard创建了myTextView,并在viewDidLoad中加入了你的代码。

关于ios - 在 Objective-C 中加载时将光标移动到预填充 Textview 的开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57758584/

相关文章:

objective-c - NSObject 到 NSString Objective-C

swift - UITextView,订单号与标题和内容之间的距离 - Swift

iphone - UIScrollView 中的可选文本

iphone - 如何以编程方式在ios搜索栏中输入关键字?

ios - Homebrew 软件无法安装 xctool

ios - 获取 NSData 的最后 10 个数字

iOS清空请求队列

ios - UITextView - 键盘在拖动时关闭或交互关闭

ios - 使 NSNumberFormatter 始终将输入的最右边两位数视为小数部分

ios - AFNetworking - 重试直到 API 正确响应