Привязка (ограничение положения элемента перетаскивания) во время NSDraggingSession
Я ищу способ ограничить положение NSDraggingItem во время перетаскивания. Сначала я проверил, может ли помочь метод enumerateDraggingItemsWithOptions:. Я попытался установить draggingFrame каждого перечисляемого элемента в (мою) позицию привязки. Это не работает. В документации говорится, что: Рамка перетаскивания обеспечивает пространственное отношение между экземплярами NSDraggingItem, когда для формы перетаскивания установлено значение NSDraggingFormationNone, и кажется, что нет способа, как это сделать. На самом деле, любые изменения в draggingFrame изменяют положение перетаскиваемых элементов. Я вызываю enumerateDraggingItemsWithOptions: from - (NSDragOperation)draggingUpdated: (id) отправитель. Спасибо за любую подсказку.
[sender enumerateDraggingItemsWithOptions: NSDraggingItemEnumerationConcurrent
forView: self
classes: @[NSPasteboardItem.class]
searchOptions: @{NSPasteboardURLReadingFileURLsOnlyKey: @(NO)}
usingBlock: ^(NSDraggingItem * _Nonnull draggingItem, NSInteger idx, BOOL * _Nonnull stop) {
NSRect newFrame = NSMakeRect(snapOrigin.x, snapOrigin, draggingItem.draggingFrame.size.width, draggingItem.draggingFrame.size.height);
draggingItem.draggingFrame = newFrame;
}];