Dostosowuję NSTableView
i dostosuj widok komórki na podstawie widoku za pomocą czerwonego koloru tła i obrazu.
na przykład:
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 № 1Narysował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ę.