0

プログラムで単語を検索するサービスを提供しようとしています。テキストをアイコンにドラッグすると機能しますが、メニュー項目を使用しようとすると、アプリケーションの別のインスタンスが開き、リクエストを送信したアプリケーションが約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>

これを修正する方法を知っている人はいますか?

4

0 に答える 0