NSTableView прокручивает слишком быстро при перетаскивании элемента для изменения порядка - PullRequest
0 голосов
/ 11 февраля 2020

В моем проекте macOS у меня есть NSTableView с одним столбцом, строки которого можно переупорядочить с помощью перетаскивания.

Когда слишком много элементов и прокрутка включена, перетаскивание может сделать Таблица прокрутки, когда вы приближаетесь к нижней или верхней. Такое поведение нестандартно, и мне не нужно было включать или настраивать его.

Проблема в том, что когда я начинаю перетаскивать элемент и перемещаю мышь вверх или вниз всего на несколько пикселей, прокрутка движение действительно слишком быстрое. Стол сразу достигает вершины или дна без возможности замедления. Это действительно расстраивает.

Я не понимаю, где вмешиваться или что следует изменить, чтобы настроить это поведение. Я не вижу в документах ничего такого, что могло бы изменить прокрутка типа «автоматизированная c». На данный момент я действительно невежественен.

Предлагаемый мне рабочий обходной путь - добавить sleep() вызов:

func tableView(_ tableView: NSTableView, validateDrop info: NSDraggingInfo, proposedRow row: Int, proposedDropOperation dropOperation: NSTableView.DropOperation) -> NSDragOperation

Но прокрутка становится немного прерывистой, и я cur ios чтобы понять, как это правильно делать.

Заранее благодарим за любой намек или указатель на соответствующий фрагмент документации.

1 Ответ

0 голосов
/ 29 апреля 2020

Оказывается, скорость автоматической прокрутки и горячие области управляются механизмом перетаскивания и не могут быть переопределены явно (по крайней мере, я не мог найти способ).

НО это ответ сохранил мой день: NSTableView в NSScrollView не выполняет автопрокрутку при перетаскивании

TL; DR Автоматические области прокрутки и скорость прокрутки зависят от Размер NSTableCellView, как установить в Интерфейсном Разработчике . Чем больше размер, тем больше горячие области и быстрее прокрутка.

...