/ / jak dostosować sesję przeciągania NSTableView - C-C, macos, tableview

jak dostosować sesję przeciągania NSTableView - cel-c, macos, tableview

Dostosowuję NSTableViewi dostosuj widok komórki na podstawie widoku za pomocą czerwonego koloru tła i obrazu.

na przykład:

wprowadź opis obrazu tutaj

Tabela implementuje metodę:

-(void)tableView:(NSTableView *)tableView draggingSession:     (NSDraggingSession *)session willBeginAtPoint:(NSPoint)screenPoint     forRowIndexes:(NSIndexSet *)rowIndexes

Chcę dostosować element przeciągania, aby był tylko obrazem bez koloru tła. więc napisałem taki kod:

[session enumerateDraggingItemsWithOptions:NSDraggingItemEnumerationConcurrent
forView:tableView
classes:[NSArray arrayWithObject:[NSPasteboardItem class]]
searchOptions:nil
usingBlock:^(NSDraggingItem *draggingItem, NSInteger index, BOOL *stop) {
[draggingItem setDraggingFrame:NSMakeRect(0, 0, StickerTableViewWidth, StickerTableViewHeight)
contents:[NSImage imageNamed:imageName]];
}];

ale tak naprawdę nie wchodzi w blok.

czy ktoś wie dlaczego?

Odpowiedzi:

0 dla odpowiedzi № 1

Narysowałem czerwony kolor tła projektant poprosił mnie o narysowanie widoku maski nad widokiem komórki, aby wskazać wybrany status. Ale tableView jest również zaimplementowany jako źródło przeciągania, więc kiedy przeciągam komórkę, widok maski jest również wyciągany.

Następnie przejrzałem Google i stwierdziłem, że możemy użyć widoku wiersza tabeli, aby narysować wybrany status. Tak więc problem został rozwiązany.

Ale wciąż nie wiem, dlaczego blok nie został zaimplementowany. Więc jeśli ktoś wie, proszę opublikować odpowiedź, bardzo dziękuję.