1

メッセージベースのiPhoneアプリで働いています。私のアプリケーションでは、メッセージコンテンツをUITextViewにロードし、UIImageをUITextViewに追加しました。

ここで、 UITextViewを押したまますべてのUITextViewコンテンツを選択し、[コピー]オプションをユーザーに表示します。現在、ユーザーがhold UITextView some of the content only selecting

誰かが私がこれをするのを手伝ってくれますか?前もって感謝します。

編集:

UITableViewCellForRowAtIndexPathデリゲートで

    customMessageTextView = [[MessageTextView alloc] initWithFrame:CGRectZero];
    customMessageTextView.tag = 100;
    UIFont *font = [UIFont fontWithName:@"Helvetica" size:15]; 
    customMessageTextView.font = font;
    customMessageTextView.scrollEnabled = NO;
    customMessageTextView.delegate = self;
    customMessageTextView.dataDetectorTypes = UIDataDetectorTypeLink;
    [cell.contentView addSubview:customMessageTextView];
    [customMessageTextView sizeToFit]; 

    for (UIGestureRecognizer *recognizer in customMessageTextView.gestureRecognizers) 
    {
        if ([recognizer isKindOfClass:[UILongPressGestureRecognizer class]])
        {
            recognizer.enabled = NO;
        }
    }


    UILongPressGestureRecognizer *myLongPressRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(selectAllTextFromCustomMessageTextView)]; 
    [customMessageTextView addGestureRecognizer:myLongPressRecognizer];
    [myLongPressRecognizer release];

UILongPressGestureRecognizerアクション:

-(void) selectAllTextFromCustomMessageTextView
{
    NSLog(@"Select All Text Messages");
    customMessageTextView.selectedRange = NSMakeRange(0, customMessageTextView.text.length);
}
4

1 に答える 1

2

私があなたを正しく理解している場合は、を保持するときの標準的な動作UITextView(つまり、虫眼鏡など) を無効にする必要があります。編集オプションを無効にしている可能性もあります。その場合は、 を に追加するだけUILongPressGestureRecognizerですUITextViewUILongPressGestureRecognizerデフォルトで組み込まれている を無効にする必要がある場合がありUITextViewます。その方法については、こちらを参照してください

次に、UILongPressGestureRecognizerアクション メソッドで、ビュー内のすべてのテキストを選択するだけです。

[textView selectAll:self];

これにより、コピー/切り取り/貼り付けメニューが表示されることに注意してください。ただし、テキストビューで実際にユーザー編集が無効になっている場合、メニューにはCopyのみが含まれます。

于 2012-09-13T08:46:01.227 に答える