【问题标题】:Refresh NSView content when the view is displayed with MAAttachedWindow使用 MAAttachedWindow 显示视图时刷新 NSView 内容
【发布时间】:2011-02-03 16:33:31
【问题描述】:

我是我的应用程序,当用户单击系统状态栏中的图标时,我会显示一个 NSView。 这个 NSView 用 MAAttachedWindow 显示。

我的问题是:显示 attachWindow 时如何刷新 NSView 内容(makeKeyandorderFront)

我尝试在 awakeFromNib 方法中刷新内容,但它只工作一次。

谁能帮帮我?

谢谢

【问题讨论】:

    标签: objective-c cocoa nsview


    【解决方案1】:

    我找到的解决方案:

    我在视图中添加了一个观察者: 我已将对象设置为 [selft window] 以监听 MAAttachedwindow 的 NSWindowDidBecomeKeyNotification 通知。

    -(void)awakeFromNib

    {

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(windowDidBecomeKey:) name:NSWindowDidBecomeKeyNotification object:[self window]];

    }

    -(void) windowDidBecomeKey:(NSNotification *)note

    {

    // 在这里刷新

    }

    【讨论】:

      【解决方案2】:

      -awakeFromNib 只能工作一次的原因大概是因为您只从 xib 加载程序集并保留它一次。

      大概在 MAAttachedWindow 实例中实际显示您的视图的任何操作都是在显示之前“刷新”它的理想位置,即您自己调用 -makeKeyAndOrderFront:。

      那么:你尝试过什么?

      【讨论】:

      • 我今天早上找到了一个解决方案:我在我的视图中添加了一个观察者到来自 MAAttachedwindow 的 windowDidBecomeKey 通知。在选择器中添加执行刷新。 (在问我的问题之前我已经尝试过这个解决方案,但是由于另一个错误,这不起作用并导致应用程序挂起)
      猜你喜欢
      • 2021-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-30
      相关资源
      最近更新 更多