[ios]力 UITextView 光标移动到视图的顶部

标签: UITextView ios
发布时间: 2015/7/14 5:31:30
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有包含一系列的文本输入字段,可以是 UITextField 或 UITextView 控件 UITableView。当选定了一个文本输入的字段时,键盘上的下一步按钮用于循环穿过田野。这所有的作品正确除了一件事。当 UITextView (多行) 通过调用 becomeFirstResponder 接收焦点时,将光标定位在第二行在视图中,不是第一个。这似乎是最常见的建议来解决这一问题,但它不能在我的情况。有何建议?谢谢你!

-(void)textViewDidBeginEditing:(UITextView *)textView
{
     [textView setSelectedRange:NSMakeRange(0, 0)];
}

也试过没有成功:

textView.selectedTextRange = [textView textRangeFromPosition:textView.beginningOfDocument toPosition:textView.beginningOfDocument];

解决方法 1:

它似乎在重新定位光标后 textViewDidBeginEditing 称为; 所以你移动它,而它迁回。你可以避开这通过调用 setSelectedRange 使用 dispatch_async :

-(void)textViewDidBeginEditing:(UITextView *)textView
{
    dispatch_async(dispatch_get_main_queue(), ^{
        textView.selectedRange = NSMakeRange(0, 0);
    });;
}

这好像另一个选项的作品以及修复问题提到的那就是对未来用户您修复更新 performSelectorOnMainThread 并调用 setCursor 来移动光标。

[self performSelectorOnMainThread:@selector(setCursor) withObject:nil waitUntilDone:NO];
官方微信
官方QQ群
31647020