Как сделать перетаскивание для NSTableCellView, как это

Я пытаюсь реализовать перетаскивание для NSTableCellView выглядит как скриншот, но я могу сделать только текст, а не целую ячейку, как скриншот ниже:(

введите описание изображения здесь

2 ответа

Решение

Перетаскивание Программирование

Перетаскиваемое изображение

Изображение, которое перетаскивается в сеансе перетаскивания, - это просто изображение, представляющее данные на монтажном столе. Хотя пункт назначения перетаскивания может получить доступ к изображению, его главная задача связана с данными монтажного стола, которые представляет изображение - операция перетаскивания, которую в конечном итоге выполняет пункт назначения, выполняется с данными монтажного листа, а не с самим изображением.

См. Пользовательское изображение перетаскивания с NSTableView в качестве источника перетаскивания.

Вот мой ответ на мой вопрос:)

NSView to NSImage: ссылка

Override draggingImageComponents в NSTableCellView подкласс

-(NSArray *) draggingImageComponents{
    self.layer.opacity = 0.5;
    NSImage *image = [self imageRepresentation];
    self.layer.opacity = 1;

    NSDraggingImageComponent *draggingImage = [NSDraggingImageComponent draggingImageComponentWithKey:@"background"];
    draggingImage.contents = image;
    draggingImage.frame = self.bounds;
    return @[draggingImage];
}
Другие вопросы по тегам