Как перетащить файл ".txt" в obj-c
Я пытаюсь написать какой-то абсолютно простой код, где я могу перетащить простой файл 'dot.txt' в NSWindow и прочитать данные (и ничего более необычного), но все примеры, которые мне удалось найти, используют изображения, NSViews и т. д. Раздел Apple "Перетаскивание содержимого файла" в документации "Перетаскивание тем программирования для какао" подтверждает, что перетаскивание в простое NSWindow (а не в NSView и т. д.) возможно, и, кажется, обсуждает именно то, что я Я пытаюсь сделать, но, как относительный новичок, я все еще нахожу его ссылку на изображения и кадры сбивают с толку.
Может кто-нибудь, пожалуйста, помогите мне начать, показывая мне, где 'registerForDraggedTypes' кроме того, чтобы поместить это, скажем, метод 'initWithFrame' или 'initWithCoder', и какие типы для регистрации? Как только у меня появится окно для распознавания моего перетаскивания, я могу беспокоиться о других вещах "executeDragOperation" и "draggingEntered" позже.
Спасибо:-)
1 ответ
Это часть кода, над которой я работаю. Вы можете найти этот метод, когда вы создали новый проект.
-(void)applicationDidFinishLaunching:(NSNotification*)aNotification
{
[window registerForDraggedTypes:[NSArray arrayWithObjects:NSFilenamesPboardType, nil]];
}
Я тоже новичок. Во всяком случае, это сработало для меня.
И потом, это важно. Мы должны подключить этот объект к объекту окна, чтобы обрабатывать сообщения отбрасывания в этом объекте
Откройте MainMenu.xib, и появится Интерфейсный Разработчик. В Интерфейсном Разработчике подключите "Делегат приложения" (этот объект) к выходу "Делегировать" окна "Окно". (Вы можете найти выход "делегат" на панели "Инспектор"). Теперь "Делегат приложения" получает сообщения о событиях "Окна".
А затем добавляет еще метод в тот же файл класса:
-(NSDragOperation)draggingEntered:(id < NSDraggingInfo >)sender
{
return NSDragOperationGeneric;
}
-(BOOL)prepareForDragOperation:(id < NSDraggingInfo >)sender
{
NSPasteboard* pbrd = [sender draggingPasteboard];
// Do something here.
return YES;
}