是否可以获取UITextView当前编辑行的行号。
我已经看到很多问题,人们计算文本视图中的行数,但没有一个计算插入符号之前的行数。
要获得总数的行数,可以使用以下内容:
CGFloat numLines = self.contentSize.height/self.font.lineHeight;
NSLog(@"Total lines: %f", numLines);
但是,如果我点击文本的中间,我想得到的行号 我正在激活以进行编辑。
我也知道我们可以像xo和x坐标一样获得插入符号的位置:
CGPoint cursorPosition = [textView caretRectForPosition:textView.selectedTextRange.start].origin;
NSLog(@"cursor start: %@", NSStringFromCGPoint(cursorPosition));
任何聪明的想法?
答案 0 :(得分:1)
selectedTextRange
怎么样?如果它的长度为0,则表示您正在查看插入符号位置。完成后,您可以enumerateLines…
,直到找到包含插入位置的范围。
答案 1 :(得分:0)
你不想要这个吗?
int currentLine = (int)(cursorPosition.y / self.font.lineHeight);
你也可能需要+1,为了说明caretRect正好在行的顶部,你必须尝试。