首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从SIMBL插件发送NSDistributedNotification

无法从SIMBL插件发送NSDistributedNotification
EN

Stack Overflow用户
提问于 2011-08-31 05:57:23
回答 1查看 256关注 0票数 0

我正在为TextEdit开发一个插件,这个插件增加了一个额外的菜单。该菜单有许多项,当选择这些项时(其中包括)会将消息发送到我自己的应用程序。为此,我一直在使用NSDistributedNotificationCenter,但是我无法在TextEdit中从我的捆绑包中发送通知。

我检查了我在单独的应用程序中使用的代码,它似乎可以工作,所以我不明白为什么我的TextEdit包不能发送消息。

帖子通知代码:

代码语言:javascript
复制
NSDictionary *user = [NSDictionary dictionaryWithObjectsAndKeys:
                      @"TextEdit", @"applicationName", 
                      @"289", @"applicationVersion", 
                      @"1", @"menuItem", nil];
NSString *observedObject = @"com.drake.DDX";
NSDistributedNotificationCenter *center = [NSDistributedNotificationCenter defaultCenter];
[center postNotificationName:@"DDXNotification" object:observedObject userInfo:user     deliverImmediately:YES];

接收器中的代码:

代码语言:javascript
复制
NSString *observedObject = @"com.drake.DDX";
    NSDistributedNotificationCenter *center = [NSDistributedNotificationCenter defaultCenter];
    [center addObserver:self selector:@selector(receiveNotification:) name:@"DDXNotification" object:observedObject];

如果我将它添加到我的另一个应用程序中,这段代码似乎可以工作,所以它让我认为在TextEdit或SIMBL中发生了一些我不知道的事情。

我已经通过在方法执行时在TextEdit中显示一个NSAlert来检查菜单项是否正确地执行了该方法。

任何帮助都是非常感谢的。

(编辑)我发现当我发布一个通知时,如果userInfo字典是空的,那么我的应用程序就会收到通知,所以我发送的NSDictionary或接收方方法签名似乎有问题。

EN

回答 1

Stack Overflow用户

发布于 2011-08-31 08:00:47

我不知道为什么你的NSDistributedNotificationCenter不能工作。然而,我想我可以给你一种不同的方法来剥这只猫的皮。

按照myapp://menu/menu_item?参数设计一个URL方案。

重要的一点是myapp方案。

按照信息here将您的应用程序注册为此方案的默认处理程序。

现在,为了响应菜单选择,使用myapp作为方案编写适当的URL,并调用

代码语言:javascript
复制
NSURL* url = [NSURL URLWithString:@"myapp://menu/menu_item"];
[[NSWorkspace sharedWorkspace]openURL:url];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7250291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档