我一直在为MacOs
. 他们是一个窗口MainMenu.xib
,我在上面放了一组视图。一切都很好。现在,我发现能够File->New
并拥有该窗口的新(第二个)空白副本会很有用。我试图将与窗口的连接从一个新对象移动AppDelegate.m
到一个新MainView.m
对象,File->New call [[aMainView window] makeKeyAndFront]
但它似乎没有做任何事情。我仍然只有一份窗口副本。
任何意见是极大的赞赏!
我一直在为MacOs
. 他们是一个窗口MainMenu.xib
,我在上面放了一组视图。一切都很好。现在,我发现能够File->New
并拥有该窗口的新(第二个)空白副本会很有用。我试图将与窗口的连接从一个新对象移动AppDelegate.m
到一个新MainView.m
对象,File->New call [[aMainView window] makeKeyAndFront]
但它似乎没有做任何事情。我仍然只有一份窗口副本。
任何意见是极大的赞赏!
就像 hussain Shabbir 正确指出的那样,makeKeyAndOrderFront:
只制作现有的窗口键并将其放在前面;它不会创建新窗口。
您应该做的第一件事是将“MainView”重命名为更准确地描述它是什么类型的东西。它当然不应该是一种观点。当我谈到这个主题时,“主”意味着在应用程序窗口的上下文中特定的东西——这个含义与你的“主”窗口不一致,它可能是主窗口,也可能不是主窗口,特别是如果用户可以拥有超过其中之一。
我建议用 NSWindowController 直接替换 MainView。方便的是,如果你创建一个 NSWindowController 的子类,Xcode 会给你一个选项来创建一个 nib。该笔尖将有一个窗口,每个窗口控制器将在需要时加载。
然后,让你的 New 菜单项创建一个新的窗口控制器,把它扔在一堆(你需要在某个地方保留一个可变的窗口控制器数组,以保持它们都处于活动状态并且它们的窗口可见,尤其是在 ARC 下),并告诉窗口控制器以显示其窗口。