模态NSWindow再次可见后通知

时间:2017-09-06 07:10:20

标签: objective-c macos notifications visibility nswindow

我在ObjectiveC,OSX,而​​不是iOS。 XCode 8.3

我有一个偏好窗口(自定义NSWindow),它在我的主窗口上作为模态打开。

首选项窗口本身包含带有标签的视图。只要单击一个,标签高度就会改变窗口大小。

点击第一个标签:

enter image description here

点击第二个标签:

enter image description here

现在,如果某人将应用程序隐藏在扩展坞中并再次激活它,则即使选项卡2仍处于活动状态,优先选项窗口也会以选项卡1的高度变为活动状态。所以内容被切断了。

enter image description here

我需要的是某种通知,在再次变为活动/可见时触发,以在窗口显示之前触发窗口大小调整。

我在NSWindow子类(使用NSWindow委托集)中尝试了这些通知。

- (void)windowDidResignMain:(NSNotification*)notification{
NSLog(@"windowDidResignMain");
}

- (void)windowDidResignKey:(NSNotification*)notification{
NSLog(@"windowDidResignKey");
}

- (BOOL)canBecomeKeyWindow{
    return YES;
}

- (BOOL)canBecomeMainWindow{
    return YES;
}

但他们都没有奏效。是因为它是一个模态窗口吗? 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

我找到了。我的错误 - 我的tabViewController在viewWillAppear上触发了一个调整大小,始终是第一个选项卡。我将其更改为当前选定的选项卡,就是这样。