objective-c - 菜单栏应用程序行为与全屏应用程序空间 (mac os 10.7/lion)

标签 objective-c cocoa osx-lion

当您的应用程序处于全屏模式(在全屏空间中)时,除非您“轻推”屏幕顶部,否则菜单栏会隐藏。但是,如果您按下聚光灯热键,菜单栏会礼貌地向下移动到带有聚光灯搜索栏的屏幕中。太棒了。

我正在迁移一个状态栏/匿名应用程序,我希望它能够模拟此 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/

相关文章:

objective-c - 为什么将此协议(protocol)添加到此类别会触发编译器警告?

objective-c - 我怎样才能让我的 setter 设置?

objective-c - 创建类似 NSString 的 Objective-C 文字对象

cocoa - Apple 是否为 NSError 的常见 NSButton 标题提供本地化恢复选项?

objective-c - NSString - 仅转换为纯字母表(即删除重音符号+标点符号)

c++ - Cocos2dx 动画(不使用过时的方法)

objective-c - @throw 之后保留计数耗尽

linux - 如何将 linux sys/prctl.h 安装到 lion?

macos - 我应该担心 "scoped bookmarks agent connection interrupted"日志消息吗?

xcode - 安装 4.3.1 后卸载 Xcode 4.2.1