我希望我的应用程序开始没有任何最初的焦点。airbnb的这篇文章表明,焦点可能是零:UIScreen.mainScreen().focusedView // possibly nil
。有没有办法设置它,或者请求焦点为nil?
我不认为将preferredFocusView设置为nil会这样做,因为我认为这只是意味着没有首选焦点。
我认为API不支持这个,因为它违背了使用焦点引擎为用户提供导航上下文的整个想法。
这是来自文档:
如果你的应用程序使用内置的UIKit控件,你的应用程序不需要做任何事情来支持开箱式的焦点:当应用程序启动时,屏幕上的可聚焦控件被选择为初始焦点视图,焦点引擎会在应用程序的生命周期内为你管理焦点。
当应用启动时,默认情况下焦点引擎会为你确定一个起始焦点视图。这个视图通常是离屏幕左上角最近的可对焦视图。
一种可能性是在屏幕边界之外有一个视图,并在您的preferredFocusView
-方法中返回该视图。
是的,有可能有一个nil聚焦视图。然而,这通常是你想要避免的事情。在最简单的情况下,如果视图层次结构中没有一个视图可以被聚焦,那么就不会有一个聚焦的视图。