阅读NSWindow重新调整活动

9 cocoa resize event-handling nswindow

我想知道是否有人知道,当NSWindow被调整大小时我该怎么读?我们假设我在一个空窗口(按钮除外)中有一个按钮,然后用户从右下角调整窗口大小,现在我应该这样做,以便在调整窗口大小时按钮也会调整大小.我知道如何调整按钮的大小,我知道如何调整窗口的大小,我知道很多东西,但是当用户调整窗口大小时,我不知道如何获得通知,任何提示?

Mar*_*m0t 11

你能使用?windowDidResize:委托方法吗?


小智 5

在从 .m 文件的 nib 中唤醒后写入

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(screenResize) name:NSWindowDidResizeNotification object:nil];
Run Code Online (Sandbox Code Playgroud)

并立即创建一个方法

(void)screenResize
{
    NSRect rect = Preloader.frame;
    rect = NSMakeRect(self.view.frame.origin.x+self.view.frame.size.width/2, self.view.frame.origin.y+self.view.frame.size.height/2, Preloader.frame.size.width, Preloader.frame.size.height);
    Preloader.frame = rect;
    NSLog(@"X = %f, Y = %f, W = %f, H= %f", rect.origin.x, rect.origin.y, rect.size.width, rect.size.height);
}
Run Code Online (Sandbox Code Playgroud)

当你下课时写

    [[NSNotificationCenter defaultCenter] removeObserver:self name:NSWindowDidResizeNotification object:nil];
Run Code Online (Sandbox Code Playgroud)