gpt4 book ai didi

cocoa - NSPopUpButton 未选择正确

转载 作者:行者123 更新时间:2023-12-03 16:54:53 24 4
gpt4 key购买 nike

我使用此代码向 NSView 添加弹出按钮:

if (popupButton) [popupButton release];
popupButton = [[NSPopUpButton alloc] initWithFrame:NSMakeRect(0, 0, SHEET_WIDTH/2, 32) pullsDown:true];
NSMenu *menu = [[NSMenu alloc] init];
for (NSString *title in anArray)
[menu addItemWithTitle:title action:NULL keyEquivalent:@""];
[popupButton setMenu:menu];
[self addView:popupButton aligned:KOAlignmentCenter];

当我启动我的应用程序时,该按钮没有选择。当用户单击它并选择其中一项时,该按钮保持为空。例如,如果有 3 个可能的选择(item1、item2 和 item3),并且用户单击第二个,则不会显示“item2”,而是什么也不显示:

empty selection

最佳答案

我不知道为什么你没有显示任何内容,因为当我尝试你的代码时,我确实显示了 anArray 中的第一项。但是,从列表中选择一个项目不会更改显示的内容,这是下拉类型按钮的预期行为。来自苹果的文档:

Pulldown lists typically display themselves adjacent to the popup button in the same way a submenu is displayed next to its parent item. Unlike popup lists, the title of a popup button displaying a pulldown list is not based on the currently selected item and thus remains fixed unless you change using the cell’s setTitle: method.

您也不需要任何一个菜单语句,您只需在循环中使用 NSPopupButton 方法 addItemWithTitle: 即可。因此,如果您最初仍然没有显示任何内容,请尝试不使用菜单命令,并显式使用 setTitle: 。或者,你可以改为弹出而不是下拉,这样就不会出现设置标题的问题。

这是我所做的测试:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {

NSArray *anArray = @[@"One",@"Two",@"Three",@"Four"];
_popupButton = [[NSPopUpButton alloc] initWithFrame:NSMakeRect(100, 200, 200, 32) pullsDown:TRUE];
for (NSString *title in anArray)
[_popupButton addItemWithTitle:title];
[self.window.contentView addSubview:_popupButton];
}

关于cocoa - NSPopUpButton 未选择正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12465796/

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