我有一个NSTableView,在一个单元格中我有一个NSPopUpButton ......好的。我想根据一个值在弹出按钮中设置所选项目,但无论我做什么,我似乎无法设置选择哪个菜单项...
我需要的是如果p.status是“已批准”,则将“statusMenu”中的菜单项设置为“已批准”,但它不起作用。我正确设置了绑定(我认为)弹出按钮绑定到“statusMenu”,如果我设置了断点,我可以正确查看菜单...我还可以检索所选菜单项的值并正确记录“已批准”,但实际的弹出按钮不会改变......
这是代码:
NSTableCellView *cell = [table_view makeViewWithIdentifier:identifier owner:self];
if([identifier isEqualToString:@"status"]){
if(p){
for (NSView *subview in cell.subviews) {
if (![subview isKindOfClass:[NSButton class]]) continue;
if ([subview.identifier isEqualToString:@"statusMenu"]){
if ([p.status isEqualToString:@"Approved"]){
[(NSButton *)subview setStringValue:@"Approved"];
[statusMenu selectItemWithTitle:@"Approved"];
NSLog(@"selected: %@", [statusMenu titleOfSelectedItem]); //the Log is "Approved" but the pop up button doesn't change...!!
}
}
}
}
}
这是我的标题:
@interface ProposalTableViewController : NSObject<NSTableViewDataSource, NSTableViewDelegate, QLPreviewPanelDelegate, QLPreviewPanelDataSource>{
@public
//A bunch of other stuff that's not relevlant
IBOutlet NSPopUpButton *statusMenu;
}
这是我的绑定......