osx – 匹配含有自定义视图的优胜美地NSMenuItem的充满活力的背景

osx – 匹配含有自定义视图的优胜美地NSMenuItem的充满活力的背景,第1张

概述我尝试在OS X 10.10优胜美地菜单栏中的NSMenuItem添加自定义视图。 自定义视图只是一个具有NSTextField“标签”的NSView背景。 问题在于,当添加到菜单中时,NSView的背景优势优美的活力/透明度。 NSTextfield标签不是。 通过使用NSRectFillUsingOperation,我已经得到了在优胜美地的一些背景颜色看起来很好。但其他人仍然不符合。当它工作时 我尝试在OS X 10.10优胜美地菜单栏中的NSMenuItem添加自定义视图。

自定义视图只是一个具有NSTextFIEld“标签”的NSVIEw背景。

问题在于,当添加到菜单中时,NSVIEw的背景优势优美的活力/透明度。 NSTextfIEld标签不是。

通过使用NSRectFillUsingOperation,我已经得到了在优胜美地的一些背景颜色看起来很好。但其他人仍然不符合。当它工作时,手动“突出显示”视图后,原始颜色会改变,不再匹配。如果需要,我可以挖一些示例代码。

那么当它在优胜美地看起来有些好的时候,在10.9小牛看来可怕。

我还尝试将wantsLayer属性设置为YES,将视图转换为CALayer支持的视图。这会产生其他问题,例如文本不会在清晰的背景下正确反锯齿。

我的问题:

如何在NSMenuItem自定义视图之上显示标签?标签的背景必须与视图的背景完全匹配。解决方案必须在优胜美地和小牛队工作。

示例代码如下:

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,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添加到您的自定义视图中。图像视图必须占据整个视图。 总结

以上是内存溢出为你收集整理的osx – 匹配含有自定义视图的优胜美地NSMenuItem的充满活力的背景全部内容,希望文章能够帮你解决osx – 匹配含有自定义视图的优胜美地NSMenuItem的充满活力的背景所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1036805.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存