1

抱歉,如果这是一个非常基本的问题,但我一般是 XCode 和 Mac 开发的新手。我想知道如何让一个窗口更改其内容,而不必关闭并打开一个新窗口。例如:

- (IBAction)handlelock:(id)sender {
  [_window orderOut:sender];
  [_loginwindow makeKeyAndOrderFront:sender];
}  

但是不是关闭_window并打开_login窗口,有没有办法让_window在我单击按钮时显示_login的内容?

4

2 回答 2

2

Or, just swap the window's content views:

- (IBAction)handlelock:(id)sender {
     NSView *previousContentView = _window.contentView;
     _window.contentView = _loginwindow.contentView;
     _loginwindow.contentView = previousContentView; // just store it in the other window
} 

Usually you wouldn't need multiple windows for this though, you would just have another view and swap it in.

于 2012-07-22T15:51:01.420 回答
1

有几种方法可以做到这一点。您可以在 xib 文件中有一个单独的视图,其中包含您在登录窗口中想要的内容,然后在您的窗口上调用 setContentView:loginView ,这会将旧视图换成新视图。如果您希望能够切换回原始视图,您可能希望拥有一个指向原始视图的属性。

另一种方法是使用选项卡视图——如果你不喜欢选项卡视图的外观,有一个看起来不像有选项卡的表格选项卡视图——你可以在一个选项卡中有一个视图,并且在另一个登录视图。

于 2012-07-22T15:31:22.797 回答