WKInterfaceTable 中的 WKLongPressGestureRecognizer

WKLongPressGestureRecognizer in WKInterfaceTable

我正在尝试向 WKInterfaceTable 中的单元格添加 WKLongPressGestureRecognizer。但它不起作用。 IBActions 永远不会被解雇。 我缺少什么技巧吗?还是 watchOS 根本不支持它?

万一它有帮助...我一直在与同样的事情作斗争并且必须: 在屏幕截图中的 'Table' 下附加 'Long press gesture recogniser',而不是 'Group' 并链接到 WKInterfaceController 中的操作:

- (IBAction)didLongPress:(id)sender
{
if ([sender isKindOfClass:[WKLongPressGestureRecognizer class]])
    {
    WKLongPressGestureRecognizer * item=(WKLongPressGestureRecognizer *)sender;
    CGPoint p=[item locationInObject];
    NSLog(@"long press point: %f , %f. state=%d\n",p.x,p.y,[item state]);
    }
}

这不是最终解决方案,但至少会触发该操作。不幸的是,当触发时,它会阻止 didSelectRowAtIndex 通过,因此不容易确定哪一行被长按。对于进步,我最好的想法是使用 p.y 值来确定 table 中的哪一行被长按。我一直在试图弄清楚如何以编程方式确定行高或将位置转换为对象,但到目前为止都失败了,所以目前我已经放弃了这个功能,因为我真的不想硬编码行高。但也许它会让其他人更接近解决方案,或者适合行高可以安全地硬编码的情况:)

我尝试过(但失败了)但可能是其他人的起点(或节省一些时间)的其他路线:

  • 试图取消长按,所以我仍然得到行-select(但我可以记录我们有长按,所以可以采取相应的行动)。不幸的是,我看不到如何做到这一点。我试过 [item setEnabled:false];但它并没有取消当前的长按。它只是停止识别所有未来的长按。
  • 我查找了以编程方式附加手势,以防与使用情节提要相比,这能提供更好的控制。我一无所获,我的研究表明这仅在 iOS 中受支持,在 WatchOS 中不受支持。
  • 根据发布的问题附加手势。我也看不到调用任何操作代码的证据:(