我必须在屏幕上获得UITextView
中包含的字符串的位置。为此,我尝试获取相应的UITextPosition(s)。问题是UITextView
方法beginningOfDocument
返回nil
(endOfDocuement
相同)。有人能解释我为什么吗?我可以使用哪种解决方案。
我的代码如下所示:
- (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]);
}
答案 0 :(得分:8)
这已经晚了一个月,但请确保您在Interface Builder中启用了“可选”属性。
信用:http://jon-nolen.blogspot.com/2013/10/uitextview-returns-nil-for-uitextinput.html
答案 1 :(得分:0)
确保将UITextField
添加为另一个视图的子视图。如果它仅存在于内存中,则beginningOfDocument
和endOfDocument
属性会因某种原因返回nil
。