在textview上设置光标位置

时间:2013-03-14 06:47:21

标签: iphone ios

我想根据文本视图中的x,y坐标设置光标位置。例如,我想要光标位置(10,5,300,462),我想只根据光标插入此帧的文本。

在视图中加载我设置了委托并使用NSMakeRange()函数

- (void)viewDidLoad
    {
        [super viewDidLoad];
         _TextView.delegate=self;
           _TextView.editable = YES;
          [_TextView setSelectedRange:NSMakeRange(5,0)];
    }

我创建了一个框架为(10,22,300,462)的文本视图并添加到视图中。我的要求是我希望在文本视图中显示光标在文本基础上的x,y坐标x = 10之后,y = 5之后...

2 个答案:

答案 0 :(得分:0)

尝试这样,它在我的情况下工作,它正在工作,

- (void)textViewDidBeginEditing:(UITextView *)textview 
{ 
    [self performSelector:@selector(setCursorPosition:) withObject:textview afterDelay:0.01]; 
} 

- (void)setCursorPosition:(UITextView *)textview 
{ 
    textview.selectedRange = NSMakeRange(10, 0); 
} 

答案 1 :(得分:0)

你好堆栈溢出社区。 我希望我最近不回答。

- (NSUInteger) textOffsetFromPoint: (CGPoint *) position
{
    // this gives you the nearest UITextPosition
    UITextPosition * closestPosition = [textView closestPositionToPoint:tapPoint];

    // and this "translate" UITextPosition into an integer
    NSUInteger offset = [textView offsetFromPosition:textView.beginningOfDocument 
                                          toPosition:closestPosition];
    return offset;
}
然后是Sunny建议的代码。

[self performSelector:@selector(setCursorPosition:) withObject:textView afterDelay:0.01];

- (void)setCursorPosition:(UITextView *)textview
{
    textview.selectedRange = NSMakeRange([self textOffsetFromPoint:position], 0);
}

查看UITextInput协议参考以获取更多信息。