Перетаскивание из NSOutlineView никогда не принимается - PullRequest
0 голосов
/ 03 октября 2011

Я пытаюсь реализовать перетаскивание из NSOutlineView, и хотя перетаскивание начинается нормально, оно никогда не будет принято другим приложением.Соответствующий код:

- (BOOL) outlineView:(NSOutlineView*)pOutlineView writeItems:(NSArray*)pItems toPasteboard:(NSPasteboard*)pBoard
{
    CItem* theItem = [pItems objectAtIndex:0];
    BOOL canDrag = ([theItem subItems] == 0);
    if (canDrag) {
        [pBoard clearContents];
        [pBoard writeObjects:[NSArray arrayWithObject:[theItem name]]];
    }

    return canDrag;
}

[имя элемента] возвращает строку NSString *.В какой-то момент я захочу добавить больше к содержимому монтажной панели, но пока я не смогу заставить его работать с простой строкой, кажется, нет смысла в этом разбираться.

Перетаскивание выглядит отлично, но при наведении на ресивер подсветка не отображается, а перетаскиваемое изображение «летит назад» при отпускании.

Любая помощь с благодарностью получена!* Rev.Andy

1 Ответ

1 голос
/ 04 октября 2011

Оказывается, что draggingSourceOperationMaskForLocal: никогда не вызывается для делегата NSOutlineView (или, возможно, NSTableView), поэтому операция перетаскивания никогда не разрешается. Подкласс NSOutlineView просто переопределить этот метод исправляет все.

...