从XIB加载NSView子类

时间:2010-09-18 17:34:20

标签: cocoa macos interface-builder nsview nsmenuitem

我需要在NSMenuItem中使用自定义视图。我已经创建了一个新的视图XIB并在其中自定义了视图。如何使用setView:方法加载该视图并在NSMenuItem中设置它?

更新:我找到了一个解决方案,但现在带有自定义视图的菜单项在鼠标悬停时不突出显示。何我能解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

我已经创建了一个NSViewController子类,并将其设置为XIB中文件的所有者。然后我将文件所有者的视图出口设置为XIB中的视图,最后在需要时我实例化了视图控制器并使用以下代码将其视图设置为NSMenuItem视图:

CustomViewController *viewController = [[CustomViewController alloc] initWithNibName:@"NibName" bundle:nil];

NSMenuItem *menuItem = [[NSMenuItem alloc] init];
[menuItem setView:[viewController view]];