タップしたときに表示されるデフォルトの「選択」および「すべて選択」ポップオプションと同様に、UITextViewでテキストを選択したいと思います。カスタムメニューからそれを実行できるようにしたい。selectedRangeで遊んだのですが、うまくいかないようです。何か案は?
ありがとう
タップしたときに表示されるデフォルトの「選択」および「すべて選択」ポップオプションと同様に、UITextViewでテキストを選択したいと思います。カスタムメニューからそれを実行できるようにしたい。selectedRangeで遊んだのですが、うまくいかないようです。何か案は?
ありがとう
selectedRange
プロパティはそれを行う必要がありますが、ドキュメントに記載されているように、iPhoneOS3.0以降でのみ可能です。2.2以前では、selectedRange
プロパティは実際には挿入ポイントです。
受け入れられた回答で述べたように、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];
}
}