1

私はこのコードスニペットを持っています:

NSPasteboard *pboard = [NSPasteboard pasteboardWithName:NSDragPboard];
[pboard declareTypes:[NSArray arrayWithObject:NSURLPboardType] owner:nil];
[pboard writeObjects:[NSArray arrayWithObject:[NSURL fileURLWithPath:@"/Users/dw/Desktop/macapp/Menulet/logo.png"]]];

また、絶対パスは使用したくありませんが、「logo.png」だけを使用しようとすると、次のエラーが発生します。

NSURLs written to the pasteboard via NSPasteboardWriting must be absolute URLs.  NSURL 'logo.png -- file://localhost/Users/dw/Library/Developer/Xcode/DerivedData/Menulet-bvwpfkjlcufhxubvaxubgnubtfgi/Build/Products/Debug/' is not an absolute URL.

とにかくそれをハードコーディングする必要がないということはありますか?logo.pngは現在、Xcodeのリソースフォルダにあります。

編集: 代わりにディレクトリパスを取得するにはどうすればよいですか?

4

1 に答える 1

4

これでうまくいくはずです:

[[NSBundle mainBundle] pathForResource:@"logo" ofType:@"png"]

ここのドキュメント。

于 2013-01-16T01:08:21.997 に答える