Может ли NSTableView обрабатывать обычные методы перетаскивания? - PullRequest
1 голос
/ 09 августа 2011

Я бы хотел использовать NSTableView без Методы NSTableViewDataSource , но так же, как обычный вид. draggingEntered: и draggingExited: вызывают, но когда я возвращаю NSDragOperationCopy, я не вижу указатель мыши с зеленым плюсом и performDragOperation: не вызывается.

Я подклассифицировал NSTableView с помощью следующих методов:

- (void)awakeFromNib
{
    [self registerForDraggedTypes: [NSArray arrayWithObject: NSFilenamesPboardType]];
}

- (NSDragOperation)draggingEntered: (id < NSDraggingInfo >)sender
{
    NSLog(@"draggingEntered"); //Gets called
    return NSDragOperationCopy;
}

- (void)draggingExited: (id < NSDraggingInfo >)sender
{
    NSLog(@"draggingExited"); //Gets called
}

- (BOOL)performDragOperation: (id < NSDraggingInfo >)sender
{
    NSLog(@"performDragOperation"); //Doesn't get called
    return YES;
}

1 Ответ

0 голосов
/ 10 августа 2011

В документации говорится, что она соответствует протоколам NSDraggingDestination и NSDraggingSource, так что да, она должна обрабатывать обычное перетаскивание.

Вы можете попробовать использовать -registerForDraggedTypes: метод из nsview.

...