Mac NSWindow窗口Size变化时的事件处理

来源:互联网 发布:知乎匿名回答怎么删除 编辑:程序博客网 时间:2024/06/06 08:50

1. 首先注册窗体大小变化时的事件处理的通知函数

    [[NSNotificationCenter defaultCenter] addObserver:window                                              selector:@selector(windowDidResize:)                                                  name:NSWindowDidResizeNotification                                                object:self];

2. 然后在定义的处理函数windowDidResize中调整window上面视图的frame

    - (void)windowDidResize:(NSNotification *)aNotification    {        // 调整NSWindow上NSView的frame    }

3. 实现NSView的函数resizeSubviewsWithOldSize

         当在windowDidResize中修改NSView的fame时,这个函数会被调用。

    - (void)resizeSubviewsWithOldSize:(NSSize)oldBoundsSize    {        // 根据需要调整NSView上面的别的控件和视图的frame    }