【问题标题】:Unresponsive UI Elements after closing NSWindow关闭 NSWindow 后无响应的 UI 元素
【发布时间】:2013-10-27 14:40:05
【问题描述】:

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


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

我尝试了以下方法:

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

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

【问题讨论】:

    标签: macos nswindow nscontrol


    【解决方案1】:

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

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

    现在NSWindow隐藏 / 订购了,您只需在显示时重新订购即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-02
      相关资源
      最近更新 更多