【问题标题】:How can I put an Apple TV app in background after pressing the Menu button按下菜单按钮后如何将 Apple TV 应用程序置于后台
【发布时间】:2015-12-17 13:14:20
【问题描述】:

我尝试在按下菜单按钮后使用私有方法将应用程序置于后台;并且以下代码可以正常工作:

 @implementation ViewController {
     UITapGestureRecognizer *tapRecognizer;
  }

 -(void)viewDidLoad {
     [super viewDidLoad];

     tapRecognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleTap:)];
     tapRecognizer.allowedPressTypes = @[[NSNumber numberWithInteger:UIPressTypeMenu]];
     [self.view addGestureRecognizer:tapRecognizer];
 }

 -(void)handleTap:(UITapGestureRecognizer *)sender {
     if (sender.state == UIGestureRecognizerStateEnded) {
         NSLog(@"Menu button released");
         UIApplication *app = [UIApplication sharedApplication];
         [app performSelector:@selector(suspend)];
     }
 }

但我想在不使用私有方法“suspend”的情况下获得相同的结果,因为 Apple 可能会因为使用私有方法而拒绝该应用程序。

 [app performSelector:@selector(suspend)];

任何建议将不胜感激

【问题讨论】:

  • 您能否编辑您的问题以包含一个示例?我不确定我是否完全理解您的要求和想要实现的目标。
  • 可以创建一个简单的视图控制器,然后复制上述代码以检查它是否正常工作;但是我想在不使用私有方法“suspend”的情况下获得相同的结果。提前致谢。
  • 菜单按钮不会自动暂停应用吗?
  • 你好丹尼尔,菜单按钮转到上一个屏幕视图控制器,我认为这是默认行为;但是,在某些情况下(视图控制器)我不希望应用返回;相反,我希望应用程序进入后台。
  • 感谢 Daniel,最后我决定重新设计应用流程。

标签: objective-c tvos


【解决方案1】:

Swift 3 解决方案:

override func viewDidLoad() {
    super.viewDidLoad()

    let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleTap(gesture:)))
    tapRecognizer.allowedPressTypes = [NSNumber(value: UIPressType.menu.rawValue)]
    self.view.addGestureRecognizer(tapRecognizer)
}

func handleTap(gesture: UITapGestureRecognizer){
    if gesture.state == UIGestureRecognizerState.ended {
        let app = UIApplication.shared
        app.perform(#selector(URLSessionTask.suspend))
    }
}

【讨论】:

  • 为什么要使用 URLSession 挂起?你应该使用NSXPCConnection.suspend...
  • 这只是问题中代码的 Swift 端口,它使用私有方法,可能会导致您的应用被拒绝。 (从这个意义上说,这并不是对这个问题的真正答案,即“没有私有方法我该如何做到这一点?”)
猜你喜欢
  • 2019-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多