Уже довольно поздно, но я нашел проблему:
NSCollectionView в режиме без вывода сообщений обеспечивает несовместимую реализацию:
-(NSDragOperation)draggingUpdated:(id<NSDraggingInfo>)sender
... и Apple не задокументировала это. Если вы просто реализуете этот метод, чтобы повторно вызывать метод draggingEntered, все работает нормально, например ::
-(NSDragOperation)draggingUpdated:(id<NSDraggingInfo>)sender
{
return [self draggingEntered:sender];
}
(Я пришел в SO, надеясь найти объяснение того, что "волшебство" обеспечивает эта пользовательская реализация, поскольку она тоже ... недокументирована (спасибо, Apple!). Я предполагаю, что она делает что-то умное с управлением вставкой точка в CollectionView?).
ОБНОВЛЕНИЕ: кажется, что специальная магия находится внутри объекта делегата NSCollectionView. По какой-то причине Xcode4 утверждал, что для меня не было делегата, но назначил его собранным и работал нормально. Проверьте все пользовательские / полу-документированные методы перетаскивания там.
(или просто сделайте, как я описал выше, и переопределите пользовательское поведение, и реализуйте то, что работает, и вы можете понять)