swift - 未收到 NSWorkspace 通知

标签 swift macos

当我切换应用程序时我的功能没有被执行:

public class ItemObserver: NSObject {

  @objc public func recievedNotification(notification: NSNotification) {
    print(notification.name)
    print("s")
  }
}

let observer = ItemObserver()

NSWorkspace.shared().notificationCenter.addObserver(observer, selector: #selector(ItemObserver.recievedNotification(notification:)), name: .NSWorkspaceDidActivateApplication, object: nil)

最佳答案

NSNotificationCenter 不保留观察者:它使用 zeroing weak reference , 在可能的情况。如果您记录它的 initdeinit,您会看到它正在立即被释放。

保持对观察者的强烈引用。

关于swift - 未收到 NSWorkspace 通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44468795/

相关文章:

ios - NSUserDefaults 和查询在 Mavericks Mac OSX 10.9 中不起作用

ios - 将数据存储在闭包的变量中

ios - Swift 延迟函数似乎不适用于 textField 委托(delegate) shouldChangeCharactersIn

iOS:在 tableView 中显示 firebase 数据

ruby - 在 Mac OS Mavericks (10.9.2) 上安装 Jekyll 时出错

java - 在 OS X 上启动终端并使用 Java 运行命令

objective-c - Cocoa:在用 X 关闭主窗口后以编程方式显示主窗口

ios - UIScrollView 中的跳跃(删除顶部 'page' 时)

ios - Firebase 存储错误

macos - NSImage 和 PDFImageRep 缓存仍然仅以一种分辨率绘制