Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 在显示前设置窗口的位置_Cocoa - Fatal编程技术网

Cocoa 在显示前设置窗口的位置

Cocoa 在显示前设置窗口的位置,cocoa,Cocoa,现在我正在设置一个即将打开的窗口的位置,如下所示: -(void) setActiveNodeDialog:(ISKNodeDialogController *)dialog { if (activeNodeDialog) [[activeNodeDialog window] close]; activeNodeDialog = dialog; if (activeNodeDialog) { [activeNodeDialog setMai

现在我正在设置一个即将打开的窗口的位置,如下所示:

-(void) setActiveNodeDialog:(ISKNodeDialogController *)dialog
{
    if (activeNodeDialog)
        [[activeNodeDialog window] close];
    activeNodeDialog = dialog;
    if (activeNodeDialog) {
        [activeNodeDialog setMainWindowController:self];
        NSRect windowRect = [[self window] frame];
        NSRect dialogRect = [[activeNodeDialog window] frame];
        NSPoint pos;
        pos.x = windowRect.origin.x + windowRect.size.width - dialogRect.size.width - 10;
        pos.y = windowRect.origin.y + 32;
        [[activeNodeDialog window] setFrameOrigin:pos];
        [[activeNodeDialog window] makeKeyAndOrderFront:nil];
    }
}
问题是,窗口在显示时会“跳转”。即使我在用“MakeKeyandDerfront”显示窗口之前设置了位置。该窗口是一个
NSPanel*
。有人知道怎么解决这个问题吗


在awakeFromNib中设置位置不是一个选项,因为主控制器稍后才设置。

在Interface Builder中,是否选中了窗口的“启动时可见”?如果是这样,取消选中它,您甚至不需要此代码[[activeNodeDialog窗口]关闭];。基本上,如果选中该选项,那么当xib被实例化时,窗口将自动显示。。。这是你不想要的。

事实上,这就是问题的根源。感谢上帝。这个答案救了我的命。