5

在 Windows 中,我可以将自定义消息发布到另一个进程并通知它执行以下操作:

PostMessage(WindowOfAnyProcess, WM_CUSTOM_MESSAGE, param1, param2)

Mac OS 上的替代方案是什么?碳事件对我有帮助吗?如何?谢谢你。

4

1 回答 1

5

假设这两个进程都是你的,你可以使用NSDistributedNotificationCenter向每个进程发送通知和数据。

为此,请执行以下操作:

[[NSDistributedNotificationCenter defaultCenter] postNotificationName:@"HelloFromProcessOne" object:nil]

如果要包含数据,可以使用:

[[NSDistributedNotificationCenter defaultCenter] postNotificationName:@"HelloFromProcessOne" object:nil userInfo:[NSDictionary dictionaryWithObject:@"some info here" forKey:@"data"]]

需要补充一点: 沙盒应用只有在不包含字典的情况下才能发送通知。如果发送应用程序在 App Sandbox 中,则notificationInfo必须是nil. 这意味着如果您打算以 Mac AppStore 为目标,您将无法在通知中提供信息。

要使应用程序接收通知,请执行以下操作:

[[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(someNotificationUpdate:) name:@"HelloFromProcessOne" object:nil]

someNotificationUpdate:将被声明为:

- (void)someNotificationUpdate:(NSNotification *)note;
于 2012-06-21T00:34:11.750 回答