Iphone 在UITableViewCell中的UITextView上启用dataDetectorTypes的问题

Iphone 在UITableViewCell中的UITextView上启用dataDetectorTypes的问题,iphone,uitableview,uitextview,datadetectortypes,Iphone,Uitableview,Uitextview,Datadetectortypes,我在表中的UITableViewCell中有一个UITextView。UITextView的“可编辑”已关闭,这允许我将dataDetectorTypes设置为UIDataDetectorTypeAll,这正是我想要的。该应用程序现在可以检测用户何时触摸UITextView中的链接,并执行相应的操作 当用户接触到UITextView中没有链接的部分时,就会出现问题。我希望调用UITableView委托中的DidSelectRowatineXpath。但事实并非如此,因为UITextView正在捕

我在表中的UITableViewCell中有一个UITextView。UITextView的“可编辑”已关闭,这允许我将dataDetectorTypes设置为UIDataDetectorTypeAll,这正是我想要的。该应用程序现在可以检测用户何时触摸UITextView中的链接,并执行相应的操作

当用户接触到UITextView中没有链接的部分时,就会出现问题。我希望调用UITableView委托中的DidSelectRowatineXpath。但事实并非如此,因为UITextView正在捕获触摸,即使没有检测到任何链接

我的第一个猜测是将UITextView上的userInteractionEnabled设置为NO。这意味着将调用DidSelectRowatineXpath,但UITextView无法检测链接。这是第二十二条军规

有没有办法解决这个问题


谢谢您的帮助。

也许您可以尝试将触碰传递给响应者链

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
   [super touchesBegan:touches withEvent:event];
}

也许你可以试着将修补程序传递给应答器链

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
   [super touchesBegan:touches withEvent:event];
}

覆盖所有四个
UIResponder
touch处理程序以转发到文本视图的superview

头文件指出“通常,所有进行自定义触摸处理的响应程序都应覆盖这四种方法……您必须处理取消的触摸,以确保应用程序中的行为正确。否则很可能导致错误行为或崩溃。”

类MyTextView:UITextView{
覆盖功能触摸开始(触摸:设置,withEvent事件:UIEvent?){
self.superview?触摸开始(触摸,withEvent:event)
}
覆盖功能触摸移动(触摸:设置,带事件:UIEvent?){
self.superview?触摸已移动(触摸,带事件:事件)
}
覆盖func touchesEnded(触摸:设置,withEvent事件:UIEvent?){
self.superview?.touchesend(触摸,带事件:事件)
}
覆盖功能触摸已取消(触摸:设置?,带事件:UIEvent?){
self.superview?.touchscancelled(触摸,带事件:事件)
}
}

覆盖所有四个
UIResponder
触摸处理程序以转发到文本视图的superview

头文件指出“通常,所有进行自定义触摸处理的响应程序都应覆盖这四种方法……您必须处理取消的触摸,以确保应用程序中的行为正确。否则很可能导致错误行为或崩溃。”

类MyTextView:UITextView{
覆盖功能触摸开始(触摸:设置,withEvent事件:UIEvent?){
self.superview?触摸开始(触摸,withEvent:event)
}
覆盖功能触摸移动(触摸:设置,带事件:UIEvent?){
self.superview?触摸已移动(触摸,带事件:事件)
}
覆盖func touchesEnded(触摸:设置,withEvent事件:UIEvent?){
self.superview?.touchesend(触摸,带事件:事件)
}
覆盖功能触摸已取消(触摸:设置?,带事件:UIEvent?){
self.superview?.touchscancelled(触摸,带事件:事件)
}
}

我必须从那里拿到手机,从手机中我必须调用DidSelectRowatineXpath,但它成功了!谢谢。从那里我必须拿到手机,从手机我必须打电话给DidSelectRowatineXpath,但它成功了!谢谢