当您的应用程序处于全屏模式(在全屏空间中)时,除非您“轻推”屏幕顶部,否则菜单栏会隐藏。但是,如果您按下聚光灯热键,菜单栏会礼貌地向下移动到带有聚光灯搜索栏的屏幕中。太棒了。
我正在迁移一个状态栏/匿名应用程序,我希望它能够模拟此 Spotlight 的菜单栏处理。在雪豹下,应用程序通过显示菜单来响应系统热键(它有一个 NSStatusBar 项,我调用 popUpStatusItemMenu)。然而,在 Lion 下,当应用程序处于全屏模式/空格时,菜单栏对于全屏应用程序仍然隐藏(但是请注意,热键正在调出状态栏项目并使用键盘我可以激活菜单上的各个操作 - 我只是看不到弹出的菜单)。
重申一下 - 任何人都知道聚光灯(在狮子下面)如何显示菜单栏以响应热键?或者我应该问 Lion 什么时候可以更好地处理我的 UI?
谢谢,
最佳答案
我相当确定 Spotlight 正在使用私有(private)接口(interface)来更改登录 session 的显示模式。您可以使用 -[NSApplication setPresentationOptions:]
(或已弃用但仍然可用的 Carbon 等价物 SetSystemUIMode()
),但这些明确地只从“最前面的应用程序”传播到登录 session 。
我建议 filing a suggestion用于请求显示某些 UI 元素(菜单栏、停靠栏)的 API,前提是它们当前处于从后台自动隐藏的模式。
关于objective-c - 菜单栏应用程序行为与全屏应用程序空间 (mac os 10.7/lion),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6811797/