我已经使用以下代码以编程方式创建了NSPopUpButton

[myPopUpButton insertItemWithTitle:@"--Select one--" atIndex:0];
[myPopUpButton addItemsWithTitles:[NSArray arrayWithObjects:@"1.One",@"Two",@"Three", nil]];

[myPopUpButton sizeToFit];
[myPopUpButton  setAction:@selector(popUpAction:)];
[fullBrowserView addSubview: myPopUpButton];

//PopUp Action
-(void)popUpAction:(id)sender
{
    NSLog(@"popUpAction");
}

当我单击popUpButton时,popUpButton的菜单项被禁用。
当我使用interfacebuilder时,它可以与IBAction一起正常工作。

为什么此setAction不适用于NSPopUpButton?

最佳答案

好像您没有设置目标对象来发送消息。因此,在代码中添加:

[myPopUpButton setTarget:self];
假设popUpAction:方法在同一类中。
使用Interface Builder时,它会将选择器 Action 连接到目标。
从此调用的文档中:

在您的情况下,没有对象响应该消息。

10-05 19:38