【发布时间】:2015-10-24 16:39:54
【问题描述】:
在 tvOS 上,我只能通过覆盖视图上的 pressesBegan 方法从 Siri 遥控器获取按钮按下的开始状态。如果我使用手势识别器,它只会返回结束状态。问题是,当我覆盖pressesBegan 时,即使我只将它用于选择按钮,它仍然会覆盖菜单按钮的默认功能(将应用程序推到后台)。所以我正在研究如何将应用程序发送到后台并为菜单按钮调用该方法(这是默认行为),但似乎不是 kosher 每 Apple's standards 执行 that。
这是我的参考代码:
-(void)pressesBegan:(NSSet<UIPress *> *)presses withEvent:(UIPressesEvent *)event {
for (UIPress* press in presses) {
switch (press.type) {
case UIPressTypeSelect:
NSLog(@"press began");
break;
case UIPressTypeMenu:
// this is where I would call the send to background call if Apple would allow that
// removing this case also has no effect on what happens
break;
default:
break;
}
}
作为替代方案,这仅发送按钮释放信号,但没有任何按下开始。
UITapGestureRecognizer* tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(gestureTap:)];
tapGesture.allowedPressTypes = @[[NSNumber numberWithInteger:UIPressTypeSelect]];
[view addGestureRecognizer:tapGesture];
【问题讨论】:
-
你试过打电话给
super吗? -
让我忽略最简单的修复。谢谢!如果您想发布答案,我会接受。
标签: objective-c tvos