Как я Перетаскиваю '.txt' файл в obj-c

Я пытаюсь написать некоторый абсолютно базовый код, куда я могу перетащить плоскость файл 'dot.txt' на NSWindow и чтение в данных (и ничто более необычное, чем это), но все примеры, я смог найти изображения использования и NSViews и т.д., раздел 'Dragging File Contents' Apple в его "Темах Программирования перетаскивания для Какао" документация подтверждает, что перетаскивание на простой NSWindow (а не в NSView и т.д.) возможно и, кажется, обсуждает точно, что я пытаюсь сделать, но как относительный новичок я все еще нахожу его ссылку на изображения и кадры сбивающей с толку.

Кто-либо может помочь мне начать путем показа мне, где к 'registerForDraggedTypes' кроме вставления это говорит, 'initWithFrame' или 'initWithCoder' метод, и что типы зарегистрироваться для? После того как я заставляю окно распознавать мое перетаскивание, которое я могу взволновать по поводу другого 'performDragOperation', и 'draggingEntered' наполняют позже.

Спасибо :-)

5
задан Jay 21 February 2014 в 22:06
поделиться

1 ответ

Это часть кода, над которой я работаю. Вы можете найти этот метод, когда вы создали новый проект.

-(void)applicationDidFinishLaunching:(NSNotification*)aNotification
{       
    [window registerForDraggedTypes:[NSArray arrayWithObjects:NSFilenamesPboardType, nil]]; 
}

Я тоже Ньюби. Во всяком случае, это сработало для меня.

А потом это важно. Мы должны подключить этот объект к объекту Window для обработки сообщений падения в этом объекте

Откройте MainMenu.xib, а застройщик интерфейса будет всплыть. В Interface Builder, подключите «App Delate» (этот объект), чтобы «Делегировать» выпускное отверстие «Окно». (Вы можете найти выход «Делегат» на панели инспектора) Теперь «делегат приложений» получает сообщения о событиях «окна».

А затем добавляет больше метода в одном классе файл:

-(NSDragOperation)draggingEntered:(id < NSDraggingInfo >)sender
{
    return NSDragOperationGeneric;
}
-(BOOL)prepareForDragOperation:(id < NSDraggingInfo >)sender
{
    NSPasteboard* pbrd = [sender draggingPasteboard];
    // Do something here.
    return YES;
}
6
ответ дан 14 December 2019 в 13:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: