【问题标题】:applicationDidBecomeActive doesn't fire in OSX applicationapplicationDidBecomeActive 不会在 OSX 应用程序中触发
【发布时间】:2013-05-22 01:02:06
【问题描述】:

在我的应用程序中,我有以下设置:

// .h
@interface MyDocument : NSPersistentDocument <NSApplicationDelegate>
{
   ...
}

// .m
@implementation MyDocument

-(void) applicationDidBecomeActive:(NSNotification *)notification
{
   ...
}

由于某种原因,applicationDidBecomeActive 永远不会被调用。有谁知道我在这里失踪了?!

【问题讨论】:

  • 是否调用了其他任何 NSApplicationDelegate 方法?您可能没有将文档设置为应用程序的委托,而只是说它支持该接口。这就像说“我能胜任这份工作”,但实际上并没有报名参加这份工作。只是一个理论。
  • 啊哈……好比喻!可能它没有正确设置。我该怎么做?
  • 刚刚开始工作...在 NIb 中轻松修复!非常感谢!
  • 没问题;同样的问题实际上也一直困扰着我,所以这是我的第一个想法!

标签: macos cocoa nsapplication nsapplication-delegate


【解决方案1】:

感谢 Carter 的评论,我发现在 nib 文件中,应用程序委托未链接到文件所有者 (MyDocument)。因此,将这两者联系起来可以解决问题!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-27
    • 2019-07-12
    • 2012-12-08
    相关资源
    最近更新 更多