根据Apple的指导原则,按下tvOS上的菜单按钮会返回到上一个菜单,直到您进入顶层菜单,此时它将返回到OS菜单.我的问题是,如何阻止菜单按钮的默认行为并阻止它返回到OS菜单,但是当用户位于我的应用程序的顶层菜单时重新激活它?
Adn*_*tab 16
您可以注册tapGestureRecognizer并设置如下allowedPressTypes = UIPressTypeMenu代码:
UITapGestureRecognizer *tapGestureRec = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
tapGestureRec.allowedPressTypes = @[@(UIPressTypeMenu)];
[self.view addGestureRecognizer:tapGestureRec];
Run Code Online (Sandbox Code Playgroud)
然后,只要按下Siri遥控器菜单按钮,您的handleTap方法就会被调用,允许您添加所需的任何自定义逻辑.请注意,阻止菜单按钮暂停根视图控制器上的应用程序可能会导致App Store拒绝.
你可以得到有关检测手势的更多信息点击这里和关于pressTypes 这里.
Swift版本的@ C_X的答案,对我有用.
let tapGesture = UITapGestureRecognizer(target: self, action: "handleTap:")
tapGesture.allowedPressTypes = [NSNumber(integer: UIPressType.Menu.rawValue)]
self.view.addGestureRecognizer(tapGesture)
Run Code Online (Sandbox Code Playgroud)
Swift 3版本:
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(MyClass.handleMenuPress(_:)))
tapGesture.allowedPressTypes = [NSNumber(value: UIPressType.menu.rawValue)]
self.view.addGestureRecognizer(tapGesture)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3389 次 |
| 最近记录: |