我正在上学生课:

@interface student : NSObject{
    NSString *name;
    NSDate *date;
}

我有一个NSMutableArray用于学生列表,我将它绑定(bind)到这样的NSPopUpButton

内容:studentArray,布置对象
内容值:studentArray,rangedObjects,名称

现在我可以得到像这样的学生对象:
-(IBAction)studentPopupItemSelected:(id)sender
{
    NSPopUpButton *btn = (NSPopUpButton*)sender;

    int index = [btn indexOfSelectedItem];
    student *std = [studentArray objectAtIndex:index];

    NSLog(@"%@ => %@", [std name], [std date]);
}

有什么办法可以直接从NSPopUpButton获取学生对象?喜欢:
NSPopUpButton *btn = (NSPopUpButton*)sender;
student *std = (student *)[btn objectValueOfSelectedItem];

最佳答案

您的操作方式很好。还有另一种方法,但不一定更好。

基本上,弹出按钮包含一个菜单,并且在菜单中有菜单项。

菜单项上有一个名为presentatedObject的属性,您可以使用该属性创建与学生的关联。

因此,您可以通过创建菜单项并将其添加到菜单中来手动构建弹出按钮。

关于objective-c - 如何获取NSPopUpButton所选对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12075195/

10-10 20:28