如何创建使用固定图像的NSPopUpButton,而不是箭头?

d11*_*wtq 6 macos cocoa objective-c nspopupbutton

我试图NSPopUpButtonNSButton只有一个图像集的标准渲染,但没有运气.

很像Mail.app中的"+"按钮:

没有点击 点击

我假设他们这样做了NSPopUpButton.我尝试过的显而易见的事情是:

NSMenuItem *imageItem = [[[NSMenuItem alloc] init] autorelease];
[imageItem setImage:[NSImage imageNamed:NSImageNameAddTemplate]];

[[popUpButton cell] setUsesItemFromMenu:NO];
[[popUpButton cell] setMenuItem:imageItem];
[[popUpButton cell] setImagePosition:NSImageOnly];
Run Code Online (Sandbox Code Playgroud)

然而,这并没有显示图像,而只是显示了一对箭头(我怀疑它们被绘制在图像所在的位置).打电话[popUpButton setImage:...]也没有.

是否有记录的方法来执行此操作,还是归结为某些自定义子类?

Mik*_*lah 2

在您的示例中,是的,它可能是通过 实现的,但您真正想要的是一个设置NSPopUpButton为 的按钮,而不是尝试自定义单元格。-pullsDown:YES

这是在 Interface Builder 中最容易设置的。更简单的是,使用 BWToolkit,它具有按钮栏和专门用于此目的的自定义按钮。