UITextView beginOfDocument返回nil

时间:2013-12-06 14:16:13

标签: objective-c cocoa-touch uitextview

我必须在屏幕上获得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]);
}

2 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:0)

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