我不希望用户能够选择UITextView
的前几个字符。我尝试过对它进行子类化,并注意到-setSelectedRange:
和-setSelectedTextRange:
等方法。两者都在不同的时间被调用,但似乎它是我需要的后者。
-setSelectedTextRange:
方法采用UITextRange
对象,该对象具有名为“start”的UITextPosition
属性。这听起来像我想要的但我不能写它,并且没有这个对象的类。
有没有人对如何做到这一点有任何想法? FWIW,我正试图在他们的iPhone应用程序上复制Facebook的“Check-In”视图。
提前致谢!
答案 0 :(得分:1)
我并不熟悉Facebook应用程序Check-In视图的功能,但根据您的描述,您的子类中需要类似这样的内容:
- (BOOL)becomeFirstResponder
{
if ([super becomeFirstResponder]) {
// Select text in field.
[self setSelectedTextRange:[self textRangeFromPosition:[self positionFromPosition:self.beginningOfDocument offset:1] toPosition:self.endOfDocument]];
return YES;
}
return NO;
}
特别注意“offset:1”参数。您应该可以使用它来设置所选文本范围的开头。此外,您还需要确保指定的新文本范围对文本字段中的字符数有效。