如何使UITextView文本全部可选并向用户iPhone应用程序显示复制选项?

时间:2012-09-13 09:45:39

标签: iphone ios select uiimageview uitextview

我在iPhone应用程序中工作,例如iMessage本机应用程序。我设计了一个像iMessage一样的页面,并添加了一个气泡。我是怎么做的,只是添加了一个UITextView in UITableView Cell and also i have added UIImageView on UITextView with bubble images

从NSMutableArray将文本加载到UITextView。它工作正常。现在我怀疑是:

  1. 在iMessage应用中,他们设置了when the user hold the bubble they making the text as selectable and showing Copy option。在我的应用when the user hold a bubble the Copy option showing but some particular text only copying中。如何选择所有文本并向用户显示复制选项?

  2. 在iMessage应用程序中,选择区域(选择开始和选择结束两行)未显示。但在我的应用中selection regions are showing how can i manage that?

  3. 你能帮我解决一下这个问题吗?提前谢谢。

2 个答案:

答案 0 :(得分:7)

最后我解决了我在代码下面使用的问题。现在我可以从UITextView中选择所有内容并向用户显示复制选项以复制邮件。请找到供您参考的代码。

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
    if (action == @selector(copy:))
    {
        [self selectAll:self];

        return YES;
    }
    else if (action == @selector(cut:))
    {
        return NO;
    } 
        return NO;
}


- (void)copy:(id)sender 
{
    UIPasteboard *pastBoard = [UIPasteboard generalPasteboard];
    [pastBoard setString:self.text];
    self.selectedTextRange = nil;
}

快乐编码。

答案 1 :(得分:1)

此处,您如何在UITextView

中选择文字
[textView setSelectedRange:NSMakeRange(row, length)];

其中,row表示您要从哪一行开始选择。 length是文字的总长度。

e.g. [textView setSelectedRange:NSMakeRange(1, 45)]; // where 1 is first row, and 45 is length of text of selection.