UITextView中的控件选择

时间:2011-12-05 06:14:40

标签: ios uitextview

我不希望用户能够选择UITextView的前几个字符。我尝试过对它进行子类化,并注意到-setSelectedRange:-setSelectedTextRange:等方法。两者都在不同的时间被调用,但似乎它是我需要的后者。

-setSelectedTextRange:方法采用UITextRange对象,该对象具有名为“start”的UITextPosition属性。这听起来像我想要的但我不能写它,并且没有这个对象的类。

有没有人对如何做到这一点有任何想法? FWIW,我正试图在他们的iPhone应用程序上复制Facebook的“Check-In”视图。

提前致谢!

1 个答案:

答案 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”参数。您应该可以使用它来设置所选文本范围的开头。此外,您还需要确保指定的新文本范围对文本字段中的字符数有效。