- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
自 Mavericks 以来,每个屏幕都有自己的状态栏。这也意味着在状态栏中运行的应用程序(使用 NSStatusItem)理论上具有多个关联的 NSStatusItem 对象。在实践中,虽然用户可能会看到 NSStatusItem 的多个“实例”,但它只是一个(我已经对此进行了测试)。现在,当您在状态图标中使用自定义 View 时,会出现以下问题:当用户单击状态图标时,我使用 drawStatusBarBackgroundInRect 方法以编程方式“突出显示”它。问题是状态图标的每个“实例”(每个屏幕一个)都会突出显示,尽管用户只是单击了一个。此行为与没有自定义 View 的状态图标不同。有没有办法正确实现这一点?
举个很好的例子,当您使用多个显示器时,只需单击 Dropbox 状态图标即可。您也会注意到另一个屏幕上的图标选择。
最佳答案
JLinX Apple Dev Forums 主题中提到的 Apple 的回应:
Status Items with multiple menu bars
10.9 introduces multiple menu bars, each of which draws the status items. If your status item has a custom view, this view is positioned in one menu bar, and other menu bars get a “clone”, which looks identical. The clones are not exposed in the API. The clones are drawn by redirecting your custom view’s drawing into another window. This means that your status item should not make assumptions about the drawing destination. For example, it should not assume that a call to drawRect: is destined for the view’s window, or that the resolution of the drawing destination matches the resolution of the status item’s screen. You must also not assume that the status item is on any particular display, except as described below. The clones are only redrawn in NSDefaultRunLoopMode. This allows the status item to limit highlighting to one display, by driving the run loop in another mode, such as NSEventTrackingRunLoopMode. For example, if you wish to simulate a menu, you would implement mouseDown: to show your window, and run the run loop in NSEventTrackingRunLoopMode until you determine that the window should be dismissed. While the run loop is in this mode, only the true status item will redraw. Clone status items will not redraw, and therefore they will not show any highlight applied to the true status item. When a clone status item is clicked, the clone exchanges locations with the true status item. This means that the location and screen of the status item window is reliable from within mouseDown:. You can access this information from your custom view, for example, using [[view window] screen] to position a window on the same screen as the status item.
关于macos - Mavericks 和 NSStatusItem 的具有多个监视器的自定义 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20021149/
我从 git 克隆: git clone git://git.apache.org/mesos.git 并且还做了 brew install autoconf automake libtool 然后尝
我已经在 Mavericks 上安装了 XQuartz 2.7.5。在那之后,我用 mplayer 播放的视频似乎加载到了一个单独的窗口中,所有白色都停留在播放音频上。我通过使用 launchctl
最近,我将我的 OS X 更新到了 10.9( Mavericks );不幸的是,尽管我将 Xcode 命令行更新为 OS X Mavericks 的 5.1.1,但 gfortran 停止工作。前段
尝试使用 Homebrew 软件在 mac os x mavericks 上安装 zlib-devel 不起作用: brew install zlib-devel Error: No availabl
更新:我看到有人尝试将 PyCharm 与 SSHFS 结合使用,而 JetBrains 说:“不”。也许这行不通? 我正在尝试在我工作的客户办公室的 SSHFS 安装磁盘上使用 WebStorm —
给定以下程序: #import int main(int argc, char *argv[]) { @autoreleasepool { NSDateFormatter *
我的快速查看生成器以前可以正常工作,但现在坏了。 这是一个错误还是我做错了什么? 这是我的代码: OSStatus GeneratePreviewForURL(void *thisInterface,
我很难让 PhpMyAdmin 在 Mavericks 上工作。 我通过取消注释/etc/apache2/httpd.conf 中的 LoadModule 指令在 apache 中启用了 PHP,我已
我知道还为时过早,但我已经升级到 OSX mavericks,我无法使用 Homebrew 安装 opencv。 ==> Installing dependencies for opencv:
我正在使用 vagrant Geodjango box 并且端口转发对我不起作用。 在盒子上,我运行了: python manage.py runserver 0.0.0.0:8000 但是 http
我一直在用 homebrew在 OSX Mavericks 上有一段时间了,但是我现在正在处理需要将文件添加到那些相同安装程序的文件夹中。 这是输入时的问题: $ brew info ant 我收到
我在前一周升级到 Mavericks,从那以后开始遇到 Homebrew 软件问题。 'brew doctor' 报告没有问题,但我目前正在尝试安装 Apache Thrift,但它失败了。有什么建议
我找不到任何关于此的信息,而且我从未对推送通知做过任何事情(但我模糊地知道它们是如何工作的)。在Mavericks中,既然OS X可以接收来自网站等各种事物的推送通知,那么iPhone模拟器可以接收推
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 9 年前。 Improve this ques
我有一个包含以下文本的 lldb 命令文件: settings set -- auto-confirm true breakpoint set --name main proc
我刚刚更新到 OS X Mavericks 中的命令行工具的最新版本,现在在编译我的(以前工作的)代码时,它会抛出以下错误 > clang: warning: no such sysroot dire
我正在尝试使用此脚本选择“Soundflower (2ch)”作为我的音频输出: tell application "System Preferences" activate set
在早期版本的 OS X 上,Applescript 如下: tell application "System Events" to tell process "Google Chrome" get p
我正在尝试在Genymotion中安装Google Play。但是,当我将zip放到仿真器中时,它会将文件保存在/sd.../中,而不是将其闪烁。我如何获得zip闪存? 最佳答案 如果您使用的是Mac
我的 Java 应用程序有一个构建在另一台服务器计算机上的应用程序。该服务器机器现已升级为 Mavericks + xcode 5.1。早些时候,我遇到了未使用 Mavericks + xcode 5
我是一名优秀的程序员,十分优秀!