【发布时间】:2018-02-14 13:46:47
【问题描述】:
我使用的是 ObjectiveC、OSX,而不是 iOS。 XCode 8.3
我有一个首选项窗口(自定义 NSWindow),它在我的主窗口上作为模式打开。
首选项窗口本身包含一个带有选项卡的视图。每次单击时,选项卡高度都会改变窗口大小。
点击的第一个标签:
点击了第二个标签:
现在,如果有人将应用程序隐藏在 Dock 中并再次激活它,则首选项窗口会以选项卡 1 的高度变为活动状态,即使选项卡 2 仍处于活动状态。所以内容被截断了。
我需要的是某种通知,该通知会在再次变为活动/可见时触发,以在窗口显示之前触发调整窗口大小。
我在我的 NSWindow 子类中尝试了这些通知(设置了 NSWindow 委托)。
- (void)windowDidResignMain:(NSNotification*)notification{
NSLog(@"windowDidResignMain");
}
- (void)windowDidResignKey:(NSNotification*)notification{
NSLog(@"windowDidResignKey");
}
- (BOOL)canBecomeKeyWindow{
return YES;
}
- (BOOL)canBecomeMainWindow{
return YES;
}
但它们都不起作用。是因为它是一个模态窗口吗? 任何帮助表示赞赏。
【问题讨论】:
-
这不应该发生。您在这里使用什么放置/调整大小的方式?自动布局?弹簧和支柱?您如何调整窗户的大小?你是如何填充/切换标签的?
标签: objective-c macos notifications visibility nswindow