- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试向 OS X 10.10 Yosemite 菜单栏中的 NSMenuItem 添加自定义 View 。
自定义 View 只是一个带有 NSTextField“标签”的 NSView 背景。
问题是背景 NSView 在添加到菜单时会被赋予 Yosemite 风格的活力/透明度。 NSTextfield 标签不是。
通过使用 NSRectFillUsingOperation
,我已经让它在 Yosemite 中的某些背景颜色上看起来不错。但其他人仍然不匹配。当它工作时,手动“突出显示” View 后,原始颜色发生变化并且不再匹配。如果需要,我可以为此挖掘一些示例代码。
然后,当它在 Yosemite 中看起来不错时,在 10.9 Mavericks 中看起来很糟糕。
我还尝试将 wantsLayer
属性设置为 YES,将 View 转换为 CALayer 支持的 View 。这会产生其他问题,例如文本在清晰的背景下无法正确抗锯齿。
我的问题:
如何在 NSMenuItem 自定义 View 顶部显示标签?标签的背景必须与 View 的背景完全匹配。解决方案必须适用于 Yosemite 和 Mavericks。
示例代码如下:
self.statusItem = [[NSStatusBar systemStatusBar]
statusItemWithLength:NSVariableStatusItemLength];
[self.statusItem setTitle:@"TEST"];
[self.statusItem setHighlightMode:YES];
[self.statusItem setEnabled:YES];
[self.statusItem setTarget:self];
NSMenu *menu = [[NSMenu alloc] init];
[menu addItemWithTitle:@"Disabled menu item" action:nil keyEquivalent:@""];
[menu addItemWithTitle:@"Enabled menu item" action:@selector(enabled) keyEquivalent:@""];
NSTextField *label = [[NSTextField alloc] initWithFrame:NSMakeRect(30, 20, 50, 20)];
label.stringValue = @"label";
label.editable = NO;
label.bordered = NO;
label.backgroundColor = [NSColor blueColor];
//label.backgroundColor = [NSColor clearColor];
PKMenuItemView *view = [[PKMenuItemView alloc] initWithFrame:NSMakeRect(0, 0, 200, 50)];
[view addSubview:label];
NSMenuItem *viewMenuItem = [[NSMenuItem alloc] init];
[viewMenuItem setView:view];
[menu addItem:viewMenuItem];
self.statusItem.menu = menu;
我已经对 NSView 进行了子类化以覆盖 drawRect:
并绘制彩色背景:
- (void)drawRect:(NSRect)dirtyRect {
[super drawRect:dirtyRect];
[[NSColor blueColor] setFill];
NSRectFill(dirtyRect);
//NSRectFillUsingOperation(dirtyRect, NSCompositeSourceOver);
}
最佳答案
这确实有点黑客,但它对我有用。尝试将带有空图像的 NSImageView 添加到您的自定义 View 。 ImageView 必须占据整个 View 。
关于macos - 无法匹配包含自定义 View 的 Yosemite NSMenuItem 的鲜艳背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26851306/
在 Yosemite 中启用深色模式时,必须更改状态栏应用程序图标。如何检测深色模式是否开启?有同样的通知吗? 显示另一张图像或更改现有图像的 alpha 值是否更好?需要了解哪种方法更好? 最佳答案
我刚刚更新到优胜美地,但我不断收到来自 drush 的错误消息。 dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.53.dy
设置类似于 this post 的本地开发环境一切正常,但最近我离线时无法访问我的本地开发域。当我连接到互联网时,它工作正常。我想知道优胜美地中解析器的使用方式是否有所改变。如果我离线,似乎解析器规则
自安装优胜美地以来,我不断收到错误 SSL:CA 证书设置,但证书验证已禁用。它出现在终端中的每个 https url 中。 找不到如何解决这个问题,有什么建议吗? 谢谢 坦率 最佳答案 对于来到这里
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
我的电脑里有很多excel文件,它们的图标都是普通纸,像这样: 我希望所有图标都是 .numbers 图标。有谁知道怎么做? 最佳答案 这是你可以做的: 打开 Finder 窗口并导航到/Applic
有很多人遇到类似的问题,过去我在其他计算机上曾经是其中之一,而且那里的解决方案似乎都不起作用-与其他遇到类似问题的人相比,我似乎也有不同的错误: Building native extensions.
我今天刚升级到优胜美地。我已经很久没有 mac 了。但是随着更新,我的本地主机不起作用。 Chrome 返回此网页不可用。我试过了 sudo apachectl start 尝试取回它,但没有成功。我
在升级到 Yosemite 之前,我之前已经在 mac 上安装了 Cloud Code 工具。现在使用以下命令安装时 curl -s https://www.parse.com/downloads/c
有什么方法可以删除我的 Cocoa 应用程序中的 Mac OS Yosemite 透明度吗?在 NSWindow 或 NSToolbar 中没有找到任何相关设置。 最佳答案 NSWindow 采用 N
我正在尝试使用命令行打开禁用安全性的 google chrome mac open -a Google\ Chrome --args --disable-web-security 但是,它不断打开并行
在尝试启动并运行我的新 Yosemite 机器时,我在安装 HomeBrew 和 MacPorts 时发现此错误。 Library not loaded: /usr/local/lib/libcurl
我刚试过这个,但我收到了这个错误信息。关于如何修复它的任何想法?我使用的是 R 版本 3.1.1,RNetLogo_1.0-1,平台是 x86_64-apple-darwin13.1.0(64 位),
我正在尝试签署内核扩展文件“abc.kext”。我有一个启用了 kext 的证书并尝试使用以下方式签署我的“abc.kext”: codesign --sign "Developer ID Appli
在 Yosemite 中修改 PATH 等环境变量的正确方法是什么? 这是这个问题Setting environment variables in OS X?但特别适用于优胜美地,因为它不再有效。 最
我们可以使用 JavaScript 将点击事件发送到 Cocoa 应用程序中 Web View 内的按钮吗? 我尝试使用实用程序(Yosemite)下的脚本编辑器来记录,但不幸的是无法记录 WebVi
我已经更新到 OS X Yosemite。当运行任何与远程仓库有关的 git 命令(pull、fetch 等)时,终端会不断询问我的 github 用户名和密码(远程在 github 上)。如果我从适
实际上它可以正常登录,当我使用 sudo 执行某些操作时也是如此。但是当我尝试更改首选项并弹出带有登录名/密码的窗口时,它说密码不正确。 所以我实际上无法安装任何东西。 最佳答案 我终于解决了这个问题
我想在系统首选项中的桌面和屏幕保护程序设置的复选框之后设置启动时间。但我想从我的命令石灰中做到这一点。更改 com.apple.screensaver.plist 的值对我没有帮助。感谢您的帮助。 最
我安装了 Yosemite,现在当我使用 MAMP 时收到这个 fatal error : Fatal error: Uncaught exception 'PDOException' with me
我是一名优秀的程序员,十分优秀!