NSPopUpButton设置选定项目的麻烦

时间:2017-02-24 02:39:52

标签: objective-c macos cocoa nspopupbutton

我有一个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;
    }

这是我的绑定......

Bindings screengrab

0 个答案:

没有答案