在uitextview中获取具有插入符号的行的行号

时间:2015-05-17 18:28:18

标签: ios uitextview

是否可以获取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));

任何聪明的想法?

2 个答案:

答案 0 :(得分:1)

selectedTextRange怎么样?如果它的长度为0,则表示您正在查看插入符号位置。完成后,您可以enumerateLines…,直到找到包含插入位置的范围。

答案 1 :(得分:0)

你不想要这个吗?

int currentLine = (int)(cursorPosition.y / self.font.lineHeight);

你也可能需要+1,为了说明caretRect正好在行的顶部,你必须尝试。

相关问题