很抱歉,如果这是一个非常基本的问题,但我是XCode和Mac开发的新手。我想知道如何获得一个窗口来更改其内容,而无需关闭并打开一个新窗口。例如:
- (IBAction)handlelock:(id)sender {
[_window orderOut:sender];
[_loginwindow makeKeyAndOrderFront:sender];
}
但是,当我点击按钮时,有没有办法让_window显示_login的内容?
而不是关闭_window并打开_login窗口。答案 0 :(得分:2)
或者,只需交换窗口的内容视图:
- (IBAction)handlelock:(id)sender {
NSView *previousContentView = _window.contentView;
_window.contentView = _loginwindow.contentView;
_loginwindow.contentView = previousContentView; // just store it in the other window
}
通常你不需要多个窗口,但你只需要另一个视图并交换它。
答案 1 :(得分:1)
有几种方法可以做到这一点。您可以在xib文件中包含一个单独的视图,其中包含您在登录窗口中所需的内容,然后在您的窗口上调用setContentView:loginView,这将替换旧视图的旧视图。如果您希望能够切换回原始视图,您可能希望拥有一个指向原始视图的属性。
另一种方法是使用选项卡视图 - 如果您不喜欢选项卡视图的外观,那么有一个tabless tabview看起来不像它有选项卡---您将拥有一个视图选项卡,另一个登录视图。