2

IKImageBrowserView にデータを提供するために使用している NSArrayController があります。IKImageBrowserView から他のアプリケーションへのドラッグ アンド ドロップをサポートしたいと考えています。私のコードからの関連するメソッドは次のとおりです。

- (NSUInteger) imageBrowser:(IKImageBrowserView *) aBrowser writeItemsAtIndexes:(NSIndexSet *) itemIndexes toPasteboard:(NSPasteboard *)pasteboard{
    NSArray *items = [[resultsArrayController arrangedObjects] objectsAtIndexes:itemIndexes];
    if(![pasteboard writeObjects:items]){
        return 0;
    }
    return [items count];
}

私のアプリは新しいので、10.6+ をターゲットにしています。ドキュメントによると、「Mac OS X v10.6 以降では、writeObjects を使用して、代わりに URL をペーストボードに直接書き込みます。」

書き込もうとしているオブジェクトが実際に NSURL オブジェクトであることを確認したので、プロセスがどこで中断しているのか、または問題をさらにトラブルシューティングする方法がわかりません。助けてくれてありがとう。

4

3 に答える 3

13

ペーストボードはもうクリアしましたか?ペーストボードにオブジェクトを書き込む前に、それを行う必要があり、それによってペーストボードの所有者になります。

于 2010-10-11T04:26:46.043 に答える
1

pasteboard変数が nil でないことを確認しましたか?

于 2010-10-11T01:49:59.723 に答える
-1

-[NSPasteboard writeObjects:] に送信されるオブジェクトは、NSPasteboadItems である必要がありますか? それらの文字列値を NSURL の absoluteString に設定し、NSPasteboadItems の配列を書き込むことができます。

于 2010-10-11T02:37:47.780 に答える