我设置了一个简单的事件处理程序,如here所述,但似乎没有调用选择器。我把代码放在我的AppDelegate类中,并用IB连接了代理。试图在选择器中放入一些NSLog()和断点,我希望被调用,但没有一个命中。 URL方案的工作原理是它启动我的应用程序,但在此之后它什么都不做。任何人都可以建议如何解决这个问题?谢谢!如何解决我的自定义URL方案?
回答
嗯,我不禁注意到你是-init
方法被错误宣布。如果应该有返回类型id
并在末尾有return self;
。
- (id)init
{
self = [super init];
if (self) {
[[NSAppleEventManager sharedAppleEventManager] setEventHandler:self andSelector:@selector(getUrl:withReplyEvent:) forEventClass:kInternetEventClass andEventID:kAEGetURL];
}
return self;
}
有了这些修订,我能够把这些两个例程粘贴到测试的AppController类,并把它打印出来,我输入到Safari浏览器的网址(定制方案)。我会在该-init方法上放置一个断点并逐步完成,以确保-setEventHandler:方法正在被调用。
最大的问题是:你在哪里调用NSAppleEventManager的-setEventHandler:...?如果你想捕捉一个启动你的应用的URL,你需要在你的应用完成启动之前调用它。如果您的应用程序委托在您的MainMenu.nib中创建,那么它的-init或-awakeFromNib方法都可以工作,但是,例如,-applicationDidFinishLaunching:不会。
此外,请确保您提供给-setEventHandler:的选择器与您的方法名称完全相同,特别注意大写和冒号的正确数目。
很明显,如果你发布了你的应用代理的相关代码,这将是非常有帮助的。
感谢您的建议。我仔细检查了这些东西。我相信这是一个新手的错误,但我会很感激任何人在看代码。 (这些URL位存储在info.plist中。)现在,我只是试图确认在我尝试对URL执行任何操作之前它正在工作。
- (void)init{
self = [super init];
if(self){
[[NSAppleEventManager sharedAppleEventManager] setEventHandler:self andSelector:@selector(getUrl:withReplyEvent:) forEventClass:kInternetEventClass andEventID:kAEGetURL];
}
}
- (void)getUrl:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent
{
NSString *url = [[event paramDescriptorForKeyword:keyDirectObject] stringValue];
NSLog(url);
// now you can create an NSURL and grab the necessary parts
}
我应该补充一点,我尝试将方法调用移动到-awakeFromNib但没有喜悦。 – jxpx777 2008-12-04 02:07:18
新手错误#2:没有在IB中设置我的应用程序委托的类。修复这个和上面的init方法让我走了。 Grrr ...
- 1. ESB vs自定义解决方案
- 2. SqlMembershipProvider vs自定义解决方案
- 3. android自定义url方案..?
- 4. 如何将URL从自定义asp.net解决方案正确迁移到Wordpress?
- 5. 如何使用DataAnnotations ErrorMessageResourceName与自定义资源解决方案
- 6. 测试自定义ORM解决方案性能开销 - 如何?
- 7. 来自settings.bundle的自定义URL方案
- 8. RealmObjects ...解决方案中的自定义方法?
- 9. 如何优化我的解决方案?
- 10. Android的Instagram自定义URL方案
- 11. OSX上的Firemonkey自定义url方案
- 12. 如何让我的解决方案进入Windows Problemm报告和解决方案
- 13. WordPress的成员 - 自定义或预构建的解决方案
- 14. 添加自定义解决方案以购物定制面板?
- 15. 我的缓存解决方案解决方案是否安全?
- 16. 相对URL破解.htaccess解决方案?
- 17. 实现回调函数的自定义解决方案
- 18. 构建解决方案的自定义通用目标
- 19. 自定义控件 - 解决方案的想法?
- 20. protobuf-net解决方案目录中的自定义工具?
- 21. 在Visual Studio中调试Sharepoint 2010的自定义解决方案
- 22. 如何在解决方案文件中定义项目OutputPath? (或者如何在解决方案文件指定自定义项目属性?)
- 23. 使用自定义URL方案
- 24. 自定义Url方案打开文件
- 25. 自定义URL方案ios 9
- 26. 如何以编程方式注册自定义URL方案?
- 27. 如何绑定到来自XAML的解决方案配置?
- 28. URL编码的设计解决方案
- 29. 自定义解决方案实习生.NET Core CLI工具
- 30. Visual Studio:自定义构建规则 - 每个解决方案?
CRAP!我知道这将是一个新手的错误。谢谢... – jxpx777 2008-12-04 15:01:09