更改 UISplitViewController 中的默认焦点

Changing the default focus in UISplitViewController

在 UISplitViewController 中,默认情况下,焦点设置在 TableView 上。有没有办法让我覆盖它,以便将焦点放在 DetailViewController 上?

我可以在启动应用程序时将焦点更改为按钮而不是 TableView 单元格吗?

找到解决方案:

override weak var preferredFocusEnvironments: [UIFocusEnvironment] {
    get {
        let controllerToFocus = viewControllers[1] as? ViewController
        return [(controllerToFocus?.view)]
}

我们需要调用 setNeedsFocusUpdate() 和 updateFocusIfNeeded():

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(true)

    self.setNeedsFocusUpdate()
    self.updateFocusIfNeeded()
}