【问题标题】:how to get uitextview text in particular area如何在特定区域获取 uitextview 文本
【发布时间】:2012-08-01 05:21:44
【问题描述】:

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

首先,我有这个文本视图

然后,我想获取一些文本,如下图所示:

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

【问题讨论】:

    标签: ios text uitextview area rect


    【解决方案1】:
    NSRange range = NSMakeRange(desired_position, 0);
    [myTextview setSelectedRange:range];
    

    【讨论】:

      【解决方案2】:

      有趣且不寻常的问题。

      [为 UITextView 重写,原为 UITextField 编写]

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

      查看 UITextView 的 contentOffset 可以得到已经发生的垂直滚动量(文本已经向上滚动,所以 y 值会是负数。)

      一旦有了滚动量,就需要获取 UITextView 的字体。使用 NSString sizeWithFont 来获取一行的高度。将 y 坐标除以行高,就可以得出要跳过的换行数。

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

      希望对你有帮助

      【讨论】:

      • 谢谢你的回复,但那是 uitextview 不是 uitextfield :) 你能告诉我要翻译什么观点吗?
      • 感谢 R 指出这一点。它使我能够改进我相当不充分的第一个答案。
      猜你喜欢
      • 1970-01-01
      • 2019-04-04
      • 2011-09-12
      • 2014-11-13
      • 2014-05-26
      • 2017-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多