我有一个我在界面构建器中定义的NSWindow.我希望这样做,以便当用户单击按钮时,它会打开NSWindow的新实例.我必须继承NSWindow或其他东西吗?
如果您在IB中创建了窗口并且它位于主nib文件中,则每次按下按钮时都无法创建"新实例".在nib文件中创建对象时,实际上由IB创建实例,然后将其存档到nib文件中,以便获得该实例.假设您的窗口连接到auxWindow
响应按钮单击的同一对象上命名的变量,并且操作消息已命名buttonClick
,您可以执行以下操作来显示它:
-(IBAction)buttonClick:(id)sender { if(! [auxWindow isVisible] ) [auxWindow makeKeyAndOrderFront:sender]; }
这将导致您在IB中定义的辅助窗口出现在屏幕上并成为关键窗口(以及应用程序中最重要的窗口).但请注意,如果您打算重复使用此窗口,则必须取消选中IB Inspector中关于"关闭时释放"的框,否则下次单击按钮时将出现访问冲突.
这是对你的基本问题的简单回答,但是窗口编程可能非常复杂并且通常非常具体(例如,你真的想要一个面板来处理你正在做的事情吗?)...所以我强烈建议你阅读该窗口编程指南关于这一主题的更多信息,然后要求非常具体的问题在这里,当你被卡住.