问题标签 [nsdistributednotification]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
629 浏览

xcode - NSDistributedNotifications 未分布在(相同)应用程序的实例之间

在 10.7.2 上,我无法让标准 NSDistributedNotifications 开箱即用。

即使回到只是(https://github.com/dirkx/Example-NSDistribtuedNotification-Failing上的完整 XCode 版本)到如下简单的东西我得到:

  1. 出色的“本地”通知(就像 NSNotificationCenter 一样)但是
  2. 当我启动应用程序两次时没有应用程序间通信(例如从命令行)
  3. 当其他应用程序注册此(或为零)时没有通知
  4. distnoted 守护程序日志中也没有调试/信息。

我错过了什么?

顺便说一句 - 通知观察者(https://github.com/melo/notification-watcher)不显示通知 - 但通知在应用程序内处理的。

0 投票
4 回答
5301 浏览

swift - 如何使用 Swift 3 检测 macOS 默认和暗模式之间的切换

当用户从默认模式切换到暗模式时,我想更改我的状态栏应用程序图标,反之亦然(使用 Swift 3)。这是我到目前为止所拥有的:

不幸的是,它不起作用。我究竟做错了什么?

0 投票
0 回答
273 浏览

cocoa - macOS 上的 NSDistributedNotification 间歇性不起作用

我在两个进程之间使用 NSDistributedNotifications 作为 macOS 上的 IPC。有时我看到通知已发送但未收到,并且未执行所需的操作。

发件人代码:

[[NSDistributedNotificationCenter defaultCenter]postNotificationName:@"doSomething" object:myObject userInfo:config deliverImmediately:YES];

收货人代码:

[[NSDistributedNotificationCenter defaultCenter]addObserver:self selector:@selector(myfunc:) name:@"doSomething" object:myObject];

有没有办法调试这个?我可以运行一些命令行实用程序(如 dtrace 左右)来查看通知是否已发送到所需的进程?任何帮助都将是可观的

0 投票
1 回答
793 浏览

swift - 分布式通知不再在 Catalina 中工作

我使用分布式通知中心在 safari 扩展应用程序和 MacOS 应用程序之间传输数据。我使用DistributedNotificationCenter.default().addObserver特定的通知名称,并使用相同的名称从 MacOS 应用程序发布通知DistributedNotificationCenter.default().postNotificationName

我不断得到attempt to post distributed notification 'nameofnotification' thwarted by sandboxing.

我在苹果文档中看到

只有在不包含字典的情况下,沙盒应用程序才能发送通知。如果发送应用程序在 App Sandbox 中,则 userInfo 必须为 nil。

我的用户信息不是零,但这在以前版本的 Mac 上运行良好。我错过了什么?这是比较新的吗?

在扩展程序和应用程序之间进行通信的替代方案是什么?XPC 服务会起作用吗?

更新

我已经按照苹果的文档实现了一个 XPC 服务,但是当我从 safari 扩展程序调用它时,我得到了这个错误Couldn’t communicate with a helper application.,我可以从嵌入 XPC 服务的应用程序调用它,而不会出现任何问题。

我试图:

  • 将服务复制到扩展程序的Contents/XPCServices
  • 添加一个应用程序组,并使用let connectionXPC = SXPCConnection.init(serviceName:"XXXXXXX.com.bundlename.XPCService")而不是仅let connectionXPC = NSXPCConnection.init(serviceName: "com.bundlename.XPCService")在 XXXXXXX 是应用程序组的位置。

关于如何正确使用扩展应用程序中的 XPC 服务的任何想法,或任何其他在沙盒扩展程序和应用程序之间通信和发送数据的方式。

0 投票
1 回答
110 浏览

node.js - 在 Swift 命令行工具中未收到 DistributedNotificationCenter

我正在 node.js 中构建一个小应用程序,用于execa读取来自已编译 Swift 应用程序的打印语句。这个想法类似于 Sindre Sorhus(还有谁!?)请勿打扰

虽然我不是 Swift 程序员,但我提出了一个非常简单的解决方案。swift build --configuration=release二进制文件通过从 CL运行编译以在节点应用程序中使用。它还在 XCode 的 Swift 操场上编译得很好(没有 CLI 部分),我可以看到正确的打印语句进入。

现在,当我从 Node.js 运行以下代码时,一切似乎都运行良好。但是由于某种原因,观察者没有收到通知。

有谁知道为什么在这种情况下没有收到通知?我尝试了各种方法,例如明确禁用睡眠模式并使用标志shell.exec('sudo pmset -a disablesleep 1')编译应用程序。--disable-sandbox然而,在知道之前没有运气。

0 投票
1 回答
99 浏览

swift - 最小化 macOS 应用程序 + 分布式通知中心(macOS 上的后台模式)

我已经实现了一个 macOS 应用 + 扩展。扩展可能会通过 DistributedNotificationCenter.default() 和 postNotificationName(_ name: ...) 向应用发送通知。

这些问题与 macOS 上的应用程序生命周期有关 - 如果用户最小化应用程序,并且扩展程序(正在运行)发送带有“deliverImmediately”标志的通知,会发生什么。应用程序是否能够处理它,即使在最小化的情况下?如果不是,还有其他方法可以实现这种行为吗?

PS - 我在文档中没有找到任何东西,当试图检查发生了什么时,有时应用程序会收到通知,有时它没有......所以要求检查预期的行为是什么。

0 投票
0 回答
20 浏览

swift - 从 DistributedNotificationCenter 接收通知时如何在后台更新代理应用程序数据?

我目前正在开发一个带有捆绑代理应用程序的 macOS 应用程序,该应用程序位于工具栏中。这两个应用程序通过DistributedNotificationCenter进行通信。

但是,代理应用程序不会更新其数据,除非通过单击工具栏图标再次激活它。

有没有办法让应用程序监听通知并以某种方式在后台立即响应/更新其内容?

这就是我从主应用程序收听通知的方式:

如前所述,除非我手动激活工具栏应用程序(通过单击它),否则不会应用更新/不执行打印语句。

有任何想法吗?

0 投票
0 回答
27 浏览

macos - MacOS 分布式通知无法捕获

我正在尝试学习分布式通知。这是我是否无法在 MacOS 中捕获通知的代码。

我希望函数notified应该被调用。怎么做?谢谢。