我有一个 NSWindow,它位于 NSStatusItem 的位置。窗口可以使用它自己的方法改变它的大小setSize:
,这只是得到窗口的正确框架,如下所示:
- (NSRect)frameForSize:(NSSize)size {
NSRect newFrame = self.frame;
newFrame.origin.x += (newFrame.size.width - size.width) / 2;
newFrame.origin.y += (newFrame.size.height - size.height);
newFrame.size = size;
return newFrame;
}
如果宽度改变,这允许窗口保持居中。我可以使用代码轻松调用它,但是当我使用窗口边缘调整它的大小时,直接调用 setFrame:display:。有一个委托方法windowDidResize:notification:
,但是如果我在那里设置框架,它会被设置两次并且它会滞后。
在实际调整窗口大小之前是否有一个事件被调用?如果没有,我该怎么做?