gpt4 book ai didi

objective-c - 如何更改 NSPopupButton 的背景颜色?

转载 作者:太空狗 更新时间:2023-10-30 03:51:17 27 4
gpt4 key购买 nike

我正在尝试解决一个听起来很简单的问题:更改 NSPopupButton 的背景颜色。

Interface Builder 只允许将样式更改为预定义样式,不允许更改背景颜色。此外,设置 IBOutlet 也无济于事,因为 NSPopupButton 没有 setBackgroundColor 方法。

我还尝试子类化 NSPopupButton 以覆盖 drawRect 方法。这是我尝试过的:

- (void)drawRect:(NSRect)dirtyRect
{
[[NSColor redColor] setFill];
NSRectFill(dirtyRect);
}

这会在 NSPopupButton 上绘制一个红色矩形,而不是将其设置为背景色。

关于如何解决这个问题有什么想法吗?

最佳答案

你应该创建一个 NSPopUpButtonCell 的子类,然后覆盖

- (void)drawBezelWithFrame:(NSRect)frame inView:(NSView *)controlView

NSPopupButtonCell 是 NSButtonCell 的子类它定义了几种绘制单个单元格组件的方法,例如边框、标题、图像。

然后您可以展开 NSPopupButton 并将其单元格子类更改为您的新子类,它应该使用您的绘图方法。

与 iOS 不同,Cocoa 主要使用 NSCell 来处理绘图

关于objective-c - 如何更改 NSPopupButton 的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13222205/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com