У меня есть подкласс NSView, который я перетаскиваю из , и я пытаюсь сделать так, чтобы я мог перетащить в искатель и получить объект файла (например, на рабочем столе). (мои слова в качестве места назначения перетаскивания просто превосходны).
Я могу перетаскивать / вставлять различные типы данных в другие приложения (RTF, RTFD, TIFF), но перетаскивание файла в искатель меня опередило - Мне было интересно, есть ли у кого-нибудь такая работа?
У меня есть набор текста, изображений и значков (представляющих файлы) на виде. Я разрешаю пользователям выбирать некоторые из них и перетаскивать их или просто нажимать на значок / изображение и перетаскивать. Перетаскивание в окно textEdit работает просто отлично - я могу перетаскивать текст, текст + файлы, изображения и т. Д. c.
Я объявляю типы, которые можно перетаскивать:
public override string[] WritablePasteboardTypes()
{
List<string> arr = new List<string> { NSPasteboard.NSPasteboard.NSPasteboardTypeTIFF, NSPasteboard.NSPasteboardTypeRTFD, NSPasteboard.NSPasteboardTypeRTF, NSPasteboard.NSPasteboardTypeTIFF, <my private type> };
return arr.ToArray();
}
Затем я пишу функция для копирования данных в монтажный картон:
public override bool WriteSelectionToPasteboard(NSPasteboard pboard, string type) {
if (type == NSPasteboard.NSPasteboardTypeRTFD) {
... copy an RTFD version to the pasteboard ...
}
if (type == NSPasteboard.NSPasteboardTypeTIFF) {
... copy an TIFF image to the pasteboard ...
}
... etc
}
Как я уже говорил, все это работает. Я могу успешно перетаскивать / копировать и копировать / вставлять в TextEdit и другие приложения.
Я хочу иметь возможность перетаскивать файл из моего приложения в Finder и создавать его на рабочем столе.
Я пробовал:
NSPasteboardNSPasteboardTypeFileUrl - Искатель полностью отклоняет перетаскивание (изображение перетаскивания показывает значок крестика) NSPasteboard.NSUrlType - Появляется Finder принять, но затем, когда вы отпустите, значок вернется в мое приложение (т.е. сбой не удастся). Возможно, я неправильно структурировал данные NSUrl?
Кажется, я не могу структурировать данные для NSPasteboard.NSFileContentsType . Использование NSPasteboard.NSFilesPromiseType приводит к тому, что мое приложение сильно ломает sh (иногда приходится перезагружаться). Это новое и очень мало документации и, конечно, нет C# примеров. Это может показаться «правильным» путем.
У кого-нибудь есть рабочие примеры перетаскивания объектов в искатель, который должен превратиться в файл?
Большое спасибо. Пол.