UIAlertController通过菜单按钮关闭tvOS

时间:2015-11-24 21:44:05

标签: objective-c cocoa tvos

有没有人知道如何通过单击"菜单"来启用已被解除的UIAlertViewController。 tvOS上的按钮?

Apple TV 4上的“设置”应用程序具有该行为但默认情况下在我的应用中无效。我使用以下代码创建用户可以采取的操作,但是希望他不要选择任何内容并按下"菜单"遥控器上的按钮。

UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"Alert"
                           message:@"Please make a choice"
                           preferredStyle:UIAlertControllerStyleAlert];

UIAlertAction* action1 = [UIAlertAction actionWithTitle:@"Option 1" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {}];
[alert addAction:action1];
UIAlertAction* action2 = [UIAlertAction actionWithTitle:@"Option 2" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {}];
[alert addAction:action2];

[self presentViewController:alert animated:YES completion:nil];

提前致谢。

3 个答案:

答案 0 :(得分:11)

@ion:你的回答让我找到了正确的答案。

您确实需要使用样式 UIAlertActionStyleCancel 添加一个操作,以使菜单按钮按预期工作并退出 UIAlertViewController 。 要从选项中隐藏此取消操作(无按钮,如在“设置”应用程序中),只需将其标题和处理程序设置为nil:

[alert addAction:[UIAlertAction actionWithTitle:nil style:UIAlertActionStyleCancel handler:nil]];

答案 1 :(得分:9)

您必须在UIAlertActionStyleCancel样式的控制器中至少有一个UIAlertAction才能使菜单按钮按预期工作。

答案 2 :(得分:0)

在斯威夫特:

alertController.addAction(UIAlertAction(title: nil, style: .cancel, handler: nil))