禁用用户交互以在uitextview上单击

时间:2012-05-05 19:07:30

标签: objective-c uitextview user-interaction

我在tableViewCell中有一个UITextView

问题在于,当我单击textView时,它不会执行didSelectRowAtIndexPath。

但是我无法设置userInteraction = NO,因为我希望能够在长按事件中选择文本

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我不认为你可以如此,但是如果你想要的是一种复制单元格内容(文本)的方法如何使用UITableViewDelegate来使用官方控件......(比如在你持有的联系人应用程序中)细胞)......

您可以通过实施以下方法来实现:

- (BOOL)tableView:(UITableView *)tableView shouldShowMenuForRowAtIndexPath:(NSIndexPath *)indexPath {

    if (indexPath.row == 1) { //eg, we want to copy or paste row 1 on each section
        return YES;
    }
    return NO; //for anything else return no
}


- (BOOL)tableView:(UITableView *)tableView canPerformAction:(SEL)action forRowAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender {

    if (action == @selector(copy:)) { //we want to be able to copy

        if... //check for the right indexPath
            return YES;

    }

    return NO; //return no for everything else

}


- (void)tableView:(UITableView *)tableView performAction:(SEL)action forRowAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender {

    if (action == @selector(copy:)) {

         //run the code to copy what you want here for indexPath

    }

}

刚从内存中写道,所以@selector(copy :)可能是@selector(复制)(没有:)但是试试看...你还可以添加像粘贴等的附加任务,但我会让你想到进行。

祝你好运