Objective c 如何从“awakeFromNib”更新窗口位置和大小?
此代码使我的应用程序崩溃,因为Objective c 如何从“awakeFromNib”更新窗口位置和大小?,objective-c,cocoa,Objective C,Cocoa,此代码使我的应用程序崩溃,因为awakeFromNib被递归调用: - (void)awakeFromNib { [super awakeFromNib]; ... [[self window] setFrameTopLeftPoint:NSMakePoint(frame.origin.x, frame.origin.y)]; } setFrameTopLeftPoint是否再次调用awakeFromNib?我认为当NSWindow被XIB文件加载时,a
awakeFromNib
被递归调用:
- (void)awakeFromNib
{
[super awakeFromNib];
...
[[self window] setFrameTopLeftPoint:NSMakePoint(frame.origin.x, frame.origin.y)];
}
setFrameTopLeftPoint是否再次调用awakeFromNib
?我认为当NSWindow被XIB文件加载时,awakeFromNib只被调用一次
如何从awakeFromNib
更新窗口位置和大小
谢谢我不知道为什么在awakeFromNib中会出现无限递归。我创建了一个模拟您的代码的测试项目,并且只调用了一次-awakeFromNib。我怀疑这与初始化窗口控制器的方式有关 也就是说,在-windowDidLoad中更新窗口位置可能会更好。在文档的“子类化NSWindowController”部分,它说: windowDidLoad:重写以在创建窗口nib文件后执行任务 上膛了
您在哪个类中声明此awakeFromNib?@Denis在NSWindowController中,它是窗口的委托