在NSPopUpButton中显示文件夹

时间:2012-11-20 08:00:32

标签: objective-c macos directory nspopupbutton

我想在我的NSPopUpButton中显示带有图标的文件夹。弹出窗口常用于选择文件路径。我是新用户,我无法发布图片。你可以在例如U Torrent-> preferences->目录

中看到

请提供详细的答案,因为我对此完全陌生。

非常感谢,抱歉我的英语不好

1 个答案:

答案 0 :(得分:5)

对于菜单中的每个NSMenuItem,您需要设置相应的图片,并调用setImage:

简而言之,您需要准备菜单项,将其附加到菜单,然后将后者附加到弹出按钮,如下所示:

NSPopUpButton *yourButton = [[NSPopUpButton alloc] init];
NSMenu *yourMenu = [[NSMenu alloc] init];

NSMenuItem *menuItem = [[NSMenuItem alloc] initWithTitle:@"some label" action:nil keyEquivalent:@""];
NSImage *iconImage = [[NSWorkspace sharedWorkspace] iconForFile:@"yourFilePath"];
[iconImage setSize:NSMakeSize(16,16)];

[menuItem setImage:iconImage];
[yourMenu insertItem:menuItem atIndex:0];
[yourButton setMenu:yourMenu];

请注意NSWorkspaceiconForFile:的使用,它允许您显示Finder中使用的相同图标。

有关更多示例,您可以查看Apple的示例代码:ButtonMadness