1

我想要实现的目标:一项服务将采用由数字组成的选择,显示一个窗口,列出几种货币供用户选择,然后用用户选择的转换货币替换选择。

问题:我几乎可以让一切工作。服务注册正确等等,我可以通过粘贴板将文本返回给调用应用程序,但只有当我从服务调用的方法设置粘贴板内容时。如果我打开一个窗口,然后在注册对象中调用一个方法来返回文本,那么什么也不会发生。

在服务调用的方法中,我实例化了一个窗口控制器并显示窗口。在用户单击窗口中所需的选项后,我调用注册对象中的方法来设置粘贴板上的文本。目前我没有传递任何文本,我只是将粘贴板设置为静态文本。一切正常,除了调用应用程序中没有插入任何内容。但是,如果我从服务请求者调用的方法中调用相同的方法来设置粘贴板,那么文本会正确插入到调用应用程序中。

我已经阅读了我能找到的关于服务的所有内容(包括 Apple 文档),但它们都只处理没有用户界面的服务,或者如果有,界面就在流程的最后。例如,选择可能是一个 URL,并由服务传递给 Safari,比如显示网页。在这些情况下,交互在界面(Safari)处结束。在我的情况下,界面处于流程的中间,我需要将结果返回到原始应用程序。我最初尝试在用户进行选择后在窗口控制器中设置粘贴板,但这没有用。我当时预计,如果我回调注册服务的原始对象并将粘贴板设置在那里,那么它应该可以工作,但到目前为止我还没有

我想我最初的问题是,“这是我应该能够做的事情吗?” 换句话说,可以按照我尝试的方式使用服务。如果答案是肯定的,那么对我的错误所在有什么建议吗?

4

0 回答 0