服务再次启动我的应用程序并挂起请求的应用程序

时间:2013-06-06 00:44:08

标签: objective-c macos cocoa

我试图让我的程序提供查找单词的服务。当我将一些文本拖到图标上但当我尝试使用菜单项打开应用程序的另一个实例时,它会冻结我发送请求的应用程序大约30秒然后不执行它的方法应该是。

这是我的方法:

- (void)serviceQuery:(NSPasteboard *)pboard userData:(NSString *)userData error:(NSString **)error {

    // Test for strings on the pasteboard.
    NSArray *classes = [NSArray arrayWithObject:[NSString class]];
    NSDictionary *options = [NSDictionary dictionary];

    if (![pboard canReadObjectForClasses:classes options:options]) {
        *error = NSLocalizedString(@"Error: couldn't encrypt text.",
                                   @"pboard couldn't give string.");
        return;
    }

    NSString *baseURL = @"http://labs.valtyrorn.com/bin/leit.php?q=";
    NSString *q = [pboard stringForType:NSPasteboardTypeString];
    NSString * encoded = [q stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSString *query = [NSString stringWithFormat:@"%@%@", baseURL, encoded];

    [webView setMainFrameURL:query];
    NSLog(query);
}

并且plist的服务部分看起来像这样:

<key>NSServices</key>
<array>
    <dict>
        <key>NSSendTypes</key>
        <array>
            <string>NSStringPboardType</string>
        </array>
        <key>NSMessage</key>
        <string>serviceQuery</string>
        <key>NSMenuItem</key>
        <dict>
            <key>default</key>
            <string>Fáðu beygingarlýsingu</string>
        </dict>
        <key>NSPortName</key>
        <string>BIN</string>
        <key>NSRequiredContext</key>
        <dict></dict>
    </dict>
</array>

有谁知道如何解决这个问题?

0 个答案:

没有答案