NSPopUpButton文本与菜单图像重叠

时间:2010-12-22 16:45:22

标签: cocoa

我使用以下命令以编程方式创建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但我在这里没有使用它。这是输出:

NSPopUpButton overlaps menu icon

谁能看到我做错了什么?

小心,

杰里米

1 个答案:

答案 0 :(得分:0)

恰巧这是一个简单的修复。 (感谢irel.freenode.net上的Beelsebob!)基本上,您需要拥有以下代码:

[[accessoryView cell] setArrowPosition:NSPopUpArrowAtBottom];

在某处。 (我在行下面添加了它以添加菜单项。)之前几次我已经阅读了此调用的API文档,因为我使用NSPopUpNoArrow值实现了相同的调用以删除箭头作为临时修订,但它没有说明上面使用的正确值会做它正在做的事情。问题解决了。