Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIMenucontroller在uitableviewcell上具有uitextview_Ios_Objective C_Uitableview_Uitextview_Uimenucontroller - Fatal编程技术网

Ios UIMenucontroller在uitableviewcell上具有uitextview

Ios UIMenucontroller在uitableviewcell上具有uitextview,ios,objective-c,uitableview,uitextview,uimenucontroller,Ios,Objective C,Uitableview,Uitextview,Uimenucontroller,我的自定义UITableViewCell中有一个UITextView。我使用UITextView基本上是为了在cell上提供数据检测。我为不同的单元格设置了自己的自定义UIMenuitems |-------------------------------| | | | |------------------| |

我的自定义UITableViewCell中有一个UITextView。我使用UITextView基本上是为了在cell上提供数据检测。我为不同的单元格设置了自己的自定义UIMenuitems

              |-------------------------------|
              |                               |
              |   |------------------|        |
              |   |                  |        |
              |   |        UITextView|        |
              |   |__________________|        |
              |                               |
              |                UITableViewCell|
              |_______________________________|
我面临的问题是,当我点击UITextView中的区域时,我没有得到任何菜单控制器,预期的行为是,它应该调用为该UITEBLEVEWCELL定义的同一菜单控制器

如果我用UILabel替换UITextView,我会得到合适的菜单控制器,但我失去了数据检测能力


请指导我正确的方向,我遗漏了什么或我做错了什么?

您可以使用UITapgestureRecognitizer检测文本视图上的点击

  • 确保您的文本视图的userInteractionEnabled为TRUE
myTextView.userInteractionEnabled=TRUE

  • 为文本视图添加手势识别器
  • 点击显示菜单控制器
  • 如果菜单控制器依赖于单个单元格,则可以使用行号作为textView的标记,并显示相关的菜单控制器

你所说的数据检测是什么意思?我想检测电话号码、链接、地址、事件,所以我使用[_textViewSetDataDetectorTypes:UIDataDetectorTypeAll];
UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(myTextViewTapped:)];
[myTextView addGestureRecognizer:tapGestureRecognizer];
- (void)myTextViewTapped:(id)sender {
    NSLog(@"my text view is tapped");
    // display menu now!

}
// in your tableview cellForRowAtIndexPath method

myTextView.tag = indexPath.row;

// in your selector

UITextView *myTextView = (UITextView *)sender;
int rowNumber = myTextView.tag;