Я поддерживаю операцию перетаскивания в IKImageBrowserView.В моем делегате назначения перетаскивания я принимаю NSFilenamesPboardType drop.Странная часть заключается в том, что строки filepath, которые я возвращаю, начинаются с «/ 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);