我有一个NSWindowController的子类,我使用从笔尖加载一个窗口,并显示在屏幕上。 下面是当我想要显示的窗口,被调用的代码。 在10.6时showCustomWindow被调用时显示的窗口,但在10.5这个方法被调用两次拿到窗口中显示。
-(IBAction)showCustomWindow:(id)sender
{
if(!windowController){
windowController = [[MyWindowController alloc] initWithWindowNibName:@"MyWindow"];
}
[windowController showWindow:self];
}
该窗口有“可见在启动”检查,并取消选中它似乎没有有所作为。
编辑:我意识到,我遇到的问题是不相关的我的NSWindowController或ShowWindow函数。 我有这样的设置是否正确。 然而,我却发现,并不是所有的类都实现awakeFromNib。 在我的NSView的一个子类(这是在笔尖我试图加载),我打电话[超级awakeFromNib]这是给我一个“不给选择响应”(但仅限于10.5这是奇怪)。 所以,我可以只取出[超级awakeFromNib]但我选择了希望更稳健:
if([NSView instancesRespondToSelector:@selector(awakeFromNib)]) {
[super awakeFromNib];
}
这让我的笔尖正常加载并调用ShowWindow正常工作。