如何在特定区域获取uitextview文本

时间:2012-08-01 05:21:44

标签: ios text uitextview area rect

我需要从uitextview获取文本。滚动文本视图后,我需要的文本特别是区域,而不是uitextview中的所有文本。 我会在一些图片中描述我需​​要的东西。

首先,我有这个textview enter image description here

然后,我想得到一些文字,如下图所示: enter image description here

但我不知道该怎么做,有人能帮帮我吗? 谢谢

2 个答案:

答案 0 :(得分:3)

NSRange range = NSMakeRange(desired_position, 0);
[myTextview setSelectedRange:range];

答案 1 :(得分:0)

有趣且不寻常的问题。

[重写UITextView,最初是为UITextField编写的]

UITextView基本上是一个包含在UIScrollView中的文本输入控件(使用继承)。 UIScrollView的工作原理是使用它的相对于框架的视图的坐标来移动它的内容。

查看UITextView的contentOffset以获取已发生的垂直滚动量(文本已向上滚动,因此y值将为负值。)

一旦有了滚动量,就需要获取UITextView的字体。使用NSString sizeWithFont获取行的高度。将y坐标除以线高,这将为您提供要跳过的换行符数。

可见文字的结尾有点不同。根据您的控制器结构,UITextView可能已调整大小。例如,如果您正在使用UITableViewController,它通常会自动调整tableView的大小。我将假设你已经调整了UITextView的大小,在这种情况下,结束'y'是开始'y'+ textView.frame.size.height。如果您没有调整UITextView的大小以适应键盘上方的空间,那么您可以更改设计,或者减去屏幕键盘的大小。

希望这有帮助