0

上周我花了很多时间摆弄以下问题。我解决了它,但由于我在这里找不到答案,所以我想与遇到此问题的任何人分享我的解决方案。


问题:我的应用程序在后台运行(菜单栏),它的主目录NSWindow包含我的应用程序的所有首选项。您可以NSWindow通过单击左上角的关闭按钮来关闭。关闭NSWindow并重新打开后,所有NSControls 都没有视觉响应。这些操作相应地起作用,但它们没有更新。

我尝试了以下方法:

  • 在 IB 中取消选中“关闭时释放”NSWindow
  • NSWindow从 NIB重新加载
  • NSControl所有s 的强大参考
  • 在s上调用“成为第一响应者”NSControl
  • NSView重新加载所有育儿
  • 实现所有代表连接每个代表NSControl(为每个代表工作NSControl,但对每个代表都使用它的工作量太大)
  • 禁用然后重新启用NSControls

我将在下面发布我的解决方案以供记录。

4

1 回答 1

0

我对这个问题的解决方案是子类NSWindow化并覆盖以下方法:

- (void)performClose:(id)sender{
    [self orderOut:nil];
}

- (void)close{
    [self orderOut:nil];
}

现在它NSWindow隐藏/排序了,你只需要在显示它时重新排序。

于 2013-10-27T14:40:05.167 回答