0
我支持IKImageBrowserView上的拖放操作。在我的拖放目標委託中,我接受NSFilenamesPboardType拖放。奇怪的是,我得到的文件路徑字符串都是以「/ Users/...」開頭的,而不是「file:// localhost/...」,正如我在使用NSOpenPanel時所得到的。當我將它們轉換爲NSURL以供IKImageBrowserView使用以顯示圖像時,它會感到困惑,因爲它只能理解以「file:// localhost/...」開頭的完整路徑。正如我在下面的代碼片段中所做的那樣,我可以破解前綴,但是我想知道是否有一種編程方式來獲得完整路徑?拖放時可以從粘貼板獲得完整路徑嗎?
if ([[pasteboard types] containsObject:NSFilenamesPboardType])
{
NSData* data = [pasteboard dataForType:NSFilenamesPboardType];
if (data)
{
NSString* errorDescription;
NSArray* filenames = [NSPropertyListSerialization
propertyListFromData:data
mutabilityOption:kCFPropertyListImmutable
format:nil
errorDescription:&errorDescription];
for (id filename in filenames)
{
NSURL* url = [NSURL URLWithString:[NSString stringWithFormat:@"file://localhost%@", filename]];
NSLog(@"Adding URL: %@", url);
謝謝,那很好用 – evilfred 2010-12-06 03:52:59