我想根据文本视图中的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之后...
答案 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协议参考以获取更多信息。