1

我正在为基于消息的 iPhone 应用程序工作。在我的应用程序中,我在 UITextView 中加载了消息内容并在 UITextView 上添加了 UIImage。

现在我想通过按住UITextView来选择所有 UITextView 内容并向用户显示 Copy 选项。目前当用户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

如果我对您的理解正确,您希望在握住 a UITextView(即放大镜等)时禁用标准行为。也许您甚至禁用了编辑选项。如果是这样,您应该将一个添加UILongPressGestureRecognizer到您的UITextView. 您可能必须禁用默认UILongPressGestureRecognizer内置UITextView的。你可以在这里找到一种方法。

然后在您的UILongPressGestureRecognizer操作方法中,您只需选择视图中的所有文本:

[textView selectAll:self];

请注意,这将打开复制/剪切/粘贴菜单。但是,如果您的文本视图确实禁用了用户编辑,则菜单将仅包含Copy

于 2012-09-13T08:46:01.227 回答