我想要实现的目标:一种服务,它将采用由数字组成的选择,提供一个窗口,列出几种货币供用户选择,然后用用户选择的转换货币替换选择。 / p>
问题:我几乎可以得到一切工作。服务正确注册等等,我可以通过粘贴板将文本返回给调用应用程序,但只有当我从服务调用的方法设置了粘贴板内容时。如果我打开一个窗口,然后调用注册对象中的方法来返回文本,那么没有任何反应。
在服务调用的方法中,我实例化一个窗口控制器并显示窗口。在用户单击窗口中的所需选项后,我调用已注册对象中的方法来设置粘贴板上的文本。我现在没有传递任何文本,只是将粘贴板设置为静态文本。一切正常,除了调用应用程序中没有插入任何内容。但是,如果我从服务请求者调用的方法中调用相同的方法设置粘贴板,则文本将正确插入调用应用程序中。
我已经阅读了有关服务的所有内容(包括Apple文档)。但它们都只处理没有用户界面的服务,或者如果他们这样做,那么界面就在处理。例如,选择可能是URL,并由服务传递给Safari,比如显示网页。在这些情况下,交互在界面(Safari)处结束。在我的情况下,界面处于进程的中间,我需要将结果返回到原始应用程序。我最初尝试在用户进行选择后在窗口控制器中设置粘贴板,但这不起作用。我当时希望如果我回到注册服务的原始对象并在那里设置了粘贴板,那么它应该可以工作,但到目前为止,尽管尝试了各种变化,但我还是没有取得进展。
我想我最初的问题是,“这是我应该做的吗?”换句话说,可以按照我尝试的方式使用服务。如果答案是肯定的,那么我的错误所在的任何建议都是什么?