我使用以下代码以编程方式创建一个NSPopupButton:
...
NSPopUpButton *accessoryView = [[NSPopUpButton alloc] initWithFrame:NSMakeRect(0, 0, 100, 24) pullsDown:YES];
NSFont *aFont = [NSFont systemFontOfSize:[NSFont systemFontSizeForControlSize:NSSmallControlSize]];
[accessoryView setBezelStyle:NSRecessedBezelStyle];
[accessoryView setFont:aFont];
[accessoryView setShowsBorderOnlyWhileMouseInside:YES];
[accessoryView setAutoresizingMask:NSViewMaxXMargin | NSViewMinYMargin];
NSArray *popupItems = [[NSArray alloc] initWithObjects:@"Your Account", @"Sign In", @"Create Account", nil];
[accessoryView addItemsWithTitles:popupItems];
...现在,当我将NSPopUpButton添加到我的视图中时,我得到的结果是按钮的文本与用于下拉菜单的图标重叠。我以前在使用NSControl:setAlignment时已经看到过这种情况,但这里不会用到。下面是输出:

有没有人看到我做错了什么?
保重,
杰里米
发布于 2010-12-23 01:36:58
碰巧这是一个简单的修复方法。(在irc.freenode.net上感谢Beelsebob!)基本上,您需要具有以下代码:
[[accessoryView cell] setArrowPosition:NSPopUpArrowAtBottom];就在那里的某个地方。(我将其添加到行的正下方,以添加菜单项。)我之前已经读过几次关于这个调用的API文档,因为我已经使用值NSPopUpNoArrow实现了相同的调用,以删除箭头作为临时修复,但它并不清楚上面使用的正确值是否会完成它正在做的事情。问题解决了。
https://stackoverflow.com/questions/4511458
复制相似问题