6

タップしたときに表示されるデフォルトの「選択」および「すべて選択」ポップオプションと同様に、UITextViewでテキストを選択したいと思います。カスタムメニューからそれを実行できるようにしたい。selectedRangeで遊んだのですが、うまくいかないようです。何か案は?

ありがとう

4

2 に答える 2

6

selectedRangeプロパティはそれを行う必要がありますが、ドキュメントに記載されているように、iPhoneOS3.0以降でのみ可能です。2.2以前では、selectedRangeプロパティは実際には挿入ポイントです。

于 2010-04-14T02:11:46.377 に答える
5

受け入れられた回答で述べたように、selectedRangeプロパティは必要なものですが、-textViewDidBeginEditing:デリゲートメソッドを使用している場合は、ユーザー生成の「挿入」アクションに勝つために1つの実行ループを延期する必要がある場合があることに注意してください。

- (void)textViewDidBeginEditing:(UITextView *)textView
{
    // Look for the default message and highlight it if present
    NSRange defaultMsgRange = [textView.text rangeOfString:NSLocalizedString(@"TEXTFIELD_DEFAULT_MESSAGE", nil) options:NSAnchoredSearch];

    BOOL isDefaultMsg = !(defaultMsgRange.location == NSNotFound && defaultMsgRange.length == 0);
    if (isDefaultMsg) {

        // Need to delay this by one run loop otherwise the insertion wins
        [self performBlock:^(id sender) {  // (BlocksKit - use GCD otherwise)

            textView.selectedRange = defaultMsgRange;

        } afterDelay:0.0];
    }
}
于 2013-09-28T09:47:22.827 に答える