macOS自定义urlscheme,不要使应用程序最前面的应用程序?

时间:2016-12-17 11:47:00

标签: objective-c nstimer url-scheme

我有一个自定义网址方案运行良好,但有一个小行为我希望更改...目前,入站网址已被捕获并在以下代码中处理(所以,这里一切都很好):

- (void) handleURLEvent:(NSAppleEventDescriptor*)event withReplyEvent:(NSAppleEventDescriptor*)replyEvent
{
    NSString* url = [[event paramDescriptorForKeyword:keyDirectObject] stringValue];
    //I parse and deal with the url here//
    }

是否可以避免我的应用程序成为最前面的应用程序?每当收到网址时,我的应用程序已经打开,因为我从这个应用程序启动了通信,并且只是在听取回复。但是,有时通过NSTimer进行通话,因此我的应用程序可能是也可能不是最前面的应用程序。如果我目前说通过让我的应用程序从Safari获得焦点来浏览Safari中的页面,我不想破坏工作流程。我希望这是有道理的。

这可能吗?

1 个答案:

答案 0 :(得分:0)

对于任何有兴趣的人,我都会设置一个组合容器。我将有效负载保存到组默认值,然后从我的帮助应用程序发送NSDistributedNotification。主应用程序获取通知,并从组默认值中读取有效负载数据。

这样的解决方法......但是必须使用主要和辅助应用程序沙盒。

我还发现组默认值上的KVO在沙箱中不起作用,也没有在NSDistributedNOtification中发送userDictionary。 :(

我不得不写太多额外的代码来让我的应用程序在沙盒中很好地播放。