2010-02-06 5 views
4

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

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

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

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

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

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

ответ

7

От Mac Dev Center

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

....

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

+0

Спасибо. Извините за наблюдение за важной частью документации Apple. – Jef