Привязка (ограничение положения элемента перетаскивания) во время 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;
        }];

0 ответов

Другие вопросы по тегам