UITextView beginOfDocument 返回 nil

Posted

技术标签:

【中文标题】UITextView beginOfDocument 返回 nil【英文标题】:UITextView beginningOfDocument returns nil 【发布时间】:2013-12-06 14:16:13 【问题描述】:

我必须获得UITextView 中包含的字符串在屏幕上的位置。为此,我尝试获取相应的 UITextPosition(s)。问题是UITextView 方法beginningOfDocument 返回nilendOfDocuement 相同)。有人可以解释一下为什么吗?以及我可以使用哪种解决方案。

我的代码如下所示:

- (UITextRange *)getRangeOfString:(NSString *)string inTextView:(UITextView *)tv

    UITextPosition *beginning = [tv positionFromPosition:tv.beginningOfDocument offset:[tv.text rangeOfString:string].location];
    UITextPosition *end = [tv positionFromPosition:beginning offset:[tv.text rangeOfString:string].length];

    return ([tv textRangeFromPosition:beginning toPosition:end]);

【问题讨论】:

【参考方案1】:

这大约晚了一个月,但请确保您在 Interface Builder 中启用了“可选”属性。

信用:http://jon-nolen.blogspot.com/2013/10/uitextview-returns-nil-for-uitextinput.html

【讨论】:

是的,我找到了解决方案,但感谢您的回答。 即使在将可选择项更改为 YES 之后,我仍然从“UITextInput”方法和属性中收到 nil。知道我可能缺少什么吗? 确保在故事板文件中正确链接它?通过调试器确认您调用方法的 UITextView 对象不为零。运气好吗? 我没有使用故事板,而是通过代码对其进行初始化。 TextView、TextContainers 和 layoutManager 不为零。但是所有的 'UITextInput' 方法和属性都返回 nil。我仍然无法弄清楚这个问题。 你设置好文字了吗?【参考方案2】:

确保将UITextField 添加为另一个视图的子视图。如果它只存在于内存中,则beginningOfDocumentendOfDocument 属性将出于某种原因返回nil

【讨论】:

以上是关于UITextView beginOfDocument 返回 nil的主要内容,如果未能解决你的问题,请参考以下文章

当 UITextView 的文本超出 1 行时展开 UITextView 和 UITableView

选择另一个 UITextView 时,如何阻止 UITextView 退出第一响应者/关闭键盘?

从 UIView 中的 UITextView 复制文本后,UITextView 更改为 UIWebDocumentView?

UITextView 数据变化迅速

UITextView contentInset 在 iOS 7 上的 UITextView 中不起作用?

UITextView 设置属性后做啥?