Оставьте отзыв о поведении NSTableView - PullRequest
5 голосов
/ 06 февраля 2010

У меня есть NSTableView, и я успешно реализовал tableView:validateDrop:proposedRow:proposedDropOperation: и tableView:acceptDrop:row:dropOperation:.

Мне не нужно tableView:writeRowsWithIndexes:toPasteboard:, потому что это для перетаскивания объектов из NSTableView.

Теперь проблема в том, что я хочу, чтобы он вел себя как iTunes. В iTunes 9.x (я не помню его для предыдущих версий) у вас есть NSTableView (список воспроизведения), и когда вы перетаскиваете файл поверх него, вы получаете синий фокус внутри NSTableView (возможно, это NSScrollView?) нет синей горизонтальной линии, которая указывает, куда вы собираетесь вставить объект. Так что в основном я хотел бы:

  • Нет синей горизонтальной линии вставки между строками при наведении файла через NSTableView.

  • Синий фокус внутри NSTableView (или NSScrollView).

Любая помощь будет принята с благодарностью, поэтому спасибо заранее.

1 Ответ

7 голосов
/ 06 февраля 2010

Из ссылки NSTableView :

- (void)setDropRow:(NSInteger)row dropOperation:(NSTableViewDropOperation)operation

....

"Передача значения –1 для строки и NSTableViewDropOn в качестве операции вызывает выделение всего табличного представления, а не конкретной строки. Это полезно, если данные, отображаемые приемником, не позволяют пользователю отбрасывать элементы в определенном месте строки "

...