gpt4 book ai didi

cocoa - 设置 NSWindow 在显示前的位置

转载 作者:行者123 更新时间:2023-12-03 16:04:38 25 4
gpt4 key购买 nike

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

-(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];
}
}

问题是,窗口在显示时会“跳跃”。即使我在使用“makeKeyAndOrderFront”显示窗口之前设置了位置。该窗口是一个 NSPanel *。有人知道如何解决跳跃问题吗?

在 awakeFromNib 中设置位置不是一个选项,因为主 Controller 是稍后设置的。

最佳答案

在 Interface Builder 中,是否为窗口选中了“启动时可见”?如果是这样,请取消选中它,然后您甚至不需要此代码 [[activeNodeDialog window] close];。基本上,如果选中该选项,则在实例化 xib 时会自动显示窗口...这是您不想要的。

关于cocoa - 设置 NSWindow 在显示前的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2889527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com