【问题标题】:Why doesn't a Mac Catalyst app use numberOfTouchesRequired?为什么 Mac Catalyst 应用程序不使用 numberOfTouchesRequired?
【发布时间】:2020-06-15 09:27:00
【问题描述】:

我正在使用 Mac Catalyst 将应用程序从 iOS 移植到 Mac,并注意到两指和三指点击手势不起作用。下面是一些示例代码:

UIView *test = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 200, 200)];
test.backgroundColor = [UIColor redColor];
[self.view addSubview:test];
UITapGestureRecognizer *gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(toggleColumns:)];
gesture.numberOfTouchesRequired = 2;
gesture.delegate = self;
[test addGestureRecognizer:gesture];

如果我用两根手指在 Magic Trackpad 上点击红色框,什么也不会发生。不会调用目标方法,也不会调用像 gestureRecognizer:shouldReceiveTouch: 这样的手势委托方法。但是,如果我注释掉 numberOfTouchesRequired 行,那么单指轻敲就可以了。

我在documentation 中没有看到任何关于此限制的信息,而且显然这不是多点触控的一般限制,因为 UIPinchGestureRecognizer 可以按预期工作。我错过了什么,还是应该提交错误报告?

【问题讨论】:

    标签: ios uigesturerecognizer mac-catalyst


    【解决方案1】:

    Mac Catalyst 似乎会响应两指点击以显示UIContextMenuInteraction。

    如果你实现了这个,你可以用它来显示一个两指点击的菜单。这是decent tutorial。

    注意:我在“缩放界面以匹配 iPad”模式下使用 mac 催化剂。

    【讨论】:

      猜你喜欢
      • 2021-02-21
      • 1970-01-01
      • 1970-01-01
      • 2020-02-25
      • 2021-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-29
      相关资源
      最近更新 更多