UITextView获取当前行

roo*_*ubu 6 uitextfield uitextview uikit ios uitextinput

有没有办法(疯狂的黑客欢迎)将当前行作为UITextView的字符串?这将包括自动换行等.例如,在这种情况下:

在此输入图像描述

该方法将返回"堆栈溢出.是不是很好?我",因为这是基于游标的当前行.

它也可以根据光标的位置返回"这是我为之做的测试"或"这么做".我尝试过使用UITextView方法和UITextInput协议.

编辑:

这是我试图使用的代码.我需要找到字符串的原因是为了得到它的长度,所以这就是为什么你会看到基于UI的代码.

NSRange location = self.textView.selectedRange;
NSString *searchString = [self.textView.text substringWithRange:NSMakeRange(0, location)];
CGSize currentStringDimensions = [searchString sizeWithFont:self.textView.font constrainedToSize:CGSizeMake(self.textView.frame.size.width, self.textView.frame.size.height) lineBreakMode:NSLineBreakByWordWrapping];    
float numberOfRows = (currentStringDimensions.width/(self.textView.frame.size.width));
float left = (float)(numberOfRows - (int)numberOfRows) * (self.textView.frame.size.width);
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用.我认为它可能与包装的单词或不同大小的字符有关,但左边的值不一致或在第一行后关闭.

roo*_*ubu -1

我最终使用 UITextInput 的 caretRect 方法来获取距左侧的偏移量。工作完美无缺。

  • 您可以自己重新实现该示例并发布吗?似乎这就是 StackOverflow 的要点,除非它实际上包含答案,否则它不应该是可接受的答案。 (2认同)