2010-09-18 108 views
0

我需要使用自定义视图到NSMenuItem中。我创建了一个新视图XIB并在其中定制了视图。我如何加载该视图并使用setView:方法将其设置在NSMenuItem中?从XIB加载NSView子类

UPDATE:我找到了一个解决方案,但现在自定义视图的菜单项不会在鼠标悬停时高亮显示。何可以解决这个问题吗?

回答

2

我创建了一个NSViewController子类,并将其设置为XIB中的文件所有者。然后,我设置文件的所有者自身的观点出口到视图在厦门国际银行终于在需要的时候,我实例化视图控制器,并设置它的视图作为NSMenuItem视图用下面的代码:

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

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

菜单具有自定义视图的项目不会在鼠标悬停时高亮显示。何可以解决这个问题吗? – 2010-09-19 11:36:29

+1

我需要在创建控制器后立即添加行 '[viewContoller loadView];' 。 至于突出显示的观点,我的猜测是,你需要手动完成所有。跟踪鼠标在视图中并根据需要重绘。 – 2012-04-02 13:03:38