我設置了一個簡單的事件處理程序,如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. Twilio自定義轉發解決方案
- 3. SqlMembershipProvider vs自定義解決方案
- 4. 如何啓動自定義URL方案
- 5. 自定義URL方案
- 6. 自定義URL方案Android
- 7. android自定義url方案..?
- 8. 如何將URL從自定義asp.net解決方案正確遷移到Wordpress?
- 9. 支持URL的自定義URL方案
- 10. 如何使用DataAnnotations ErrorMessageResourceName與自定義資源解決方案
- 11. 測試自定義ORM解決方案性能開銷 - 如何?
- 12. 來自settings.bundle的自定義URL方案
- 13. RealmObjects ...解決方案中的自定義方法?
- 14. 如何優化我的解決方案?
- 15. 我們如何在共享解決方案中構建自定義表單?
- 16. OSX上的Firemonkey自定義url方案
- 17. Android的Instagram自定義URL方案
- 18. 遞歸定義解決方案
- 19. 如何讓我的解決方案進入Windows Problemm報告和解決方案
- 20. 我的緩存解決方案解決方案是否安全?
- 21. WordPress的成員 - 自定義或預構建的解決方案
- 22. 添加自定義解決方案以購物定製面板?
- 23. 相對URL破解.htaccess解決方案?
- 24. 自定義控件 - 解決方案的想法?
- 25. 在Visual Studio中調試Sharepoint 2010的自定義解決方案
- 26. 實現回調函數的自定義解決方案
- 27. java字符串自定義替換優雅的解決方案
- 28. 解決方案Visual C#2010的自定義默認參考
- 29. Imageview和listviews - 是自定義適配器的解決方案嗎?
- 30. Android桂自定義標籤的最佳解決方案
CRAP!我知道這將是一個新手的錯誤。謝謝... – jxpx777 2008-12-04 15:01:09