【问题标题】:Modal NSWindow Notification after becoming visible again再次可见后的模态 NSWindow 通知
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2014-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-07
    相关资源
    最近更新 更多