在Windows中,我可以将自定义消息发布到另一个进程,并通知它执行以下操作:
PostMessage(WindowOfAnyProcess, WM_CUSTOM_MESSAGE, param1, param2)
Mac OS上有哪些替代方案? Carbon Events对我有帮助吗?怎么样? 三江源。
答案 0 :(得分:4)
假设这两个进程都属于您,您可以使用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;