作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我在 MainMenu.xib 中按下按钮时,我试图打开一个名为 EasyWindow.xib 的 nib 文件。我已将按钮连接到此 IBAction 方法,但是当我单击该按钮时它不会打开。当我将此 init 部分中的“window”更改为“loadWindow”时,它工作得很好,但 Mac 开发人员库说“您永远不应该直接调用此方法”。如何使窗口方法起作用?
- (IBAction)loadEasyWindow:(id)sender
{
[[[NSWindowController alloc] initWithWindowNibName:@"EasyWindow"] window];
}
最佳答案
- (NSWindow *)window
仅提供对 NSWindowController
管理的实际窗口对象的引用。它实际上对该窗口没有任何作用。它比其他任何东西都更像是一个 setter/getter 。
同时,-loadWindow
是当程序实际从 nib 文件加载窗口时调用的方法,与打开、关闭和显示窗口无关。这就是为什么你不应该调用它。我猜它是有效的,因为副作用是窗口会自行显示。
您正在寻找的可能是NSWindowController
的- (IBAction)showWindow:(id)sender
。 [reference]它应该完全符合您的要求:
Displays the window associated with the receiver
关于cocoa - - (NSWindow *)window 无法显示窗口,而 loadWindow 则可以,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14128710/
当我在 MainMenu.xib 中按下按钮时,我试图打开一个名为 EasyWindow.xib 的 nib 文件。我已将按钮连接到此 IBAction 方法,但是当我单击该按钮时它不会打开。当我将此
我是一名优秀的程序员,十分优秀!