如何拦截UITextView上的长按?

Epa*_*aga 7 iphone cocoa-touch objective-c uitextview

Total Objective-C/Cocoa Touch noob,请注意.

当用户长时间按下UITextView(放大镜然后与插入符号定位器一起出现)然后释放触摸时,我试图拦截,即通常在放大镜后出现"选择"和"全选"选项时.我想用我自己的自定义操作替换它,然后执行.

这可能吗?

Alt*_*ice 14

你可以尝试这样的事情:

禁用内置长按识别器

for (UIGestureRecognizer *recognizer in textView.gestureRecognizers) {
  if ([recognizer isKindOfClass:[UILongPressGestureRecognizer class]]){
    recognizer.enabled = NO;
  }
}
Run Code Online (Sandbox Code Playgroud)

然后添加自己的

UILongPressGestureRecognizer *myLongPressRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:<your target> action:@selector(<your custom handler>)]; 
[textView addGestureRecognizer:myLongPressRecognizer];
[myLongPressRecognizer release];
Run Code Online (Sandbox Code Playgroud)

  • 我喜欢这里的想法,但遗憾的是这种方法不起作用.可能是UITextView中的私有隐藏子视图,它获取识别器? (2认同)