问题
I need to use a custom view into a NSMenuItem. I've created a new view XIB and customized the view in it. How can I load that view and set it in the NSMenuItem using the setView: method?
UPDATE: I've found a solution but now the menu item with the custom view doesn't highlight on mouse over. Ho can I solve this problem?
回答1:
I've created a NSViewController subclass and set it as the file's owner in the XIB. Then I've set the view outlet of the file's owner to the view in the XIB and finally when needed I've instantiated the view controller and set it's view as the NSMenuItem view with the following code:
CustomViewController *viewController = [[CustomViewController alloc] initWithNibName:@"NibName" bundle:nil];
NSMenuItem *menuItem = [[NSMenuItem alloc] init];
[menuItem setView:[viewController view]];
来源:https://stackoverflow.com/questions/3742720/loading-nsview-subclass-from-a-xib