OS X Lion и выше позволяют пользователю включать/выключать плавающие полосы прокрутки в стиле iOS - либо вручную с помощью системных настроек, либо путем подключения мыши.
Браузеры, основанные на WebKit (и, возможно, Opera?) сразу же меняют свой стиль полосы прокрутки - Есть ли событие, которое срабатывает, когда это происходит? (только для WebKit)
Некоторые примечания:
-
OS X запускает
NSPreferredScrollerStyleDidChangeNotification
, когда пользователь переключает свой стиль полосы прокрутки -
WebKit не подписывается на это событие (без хитов для него).
-
Я подозреваю, что WebKit обрабатывает это через событие
NSViewBoundsDidChangeNotification
(которое, я полагаю, срабатывает для просмотра содержимого прокрутки). -
WebKit обрабатывает это событие внутри
-[WebHTMLView _frameOrBoundsChanged]
, которое кажется одной потенциальной точкой повторной компоновки. -
Есть также ссылки на это уведомление в
WebPDFView
, а инспекторWebNodeHighlight
- оба они не связаны с этим случаем. -
-[WebDynamicScrollBarsView adjustForScrollOriginChange]
, похоже, указывает на то, что события могут быть не запущены (если это так, было бы неплохо увидеть некоторое подтверждение )
Опрос изменений не является приемлемым для меня ответом (производительность и макет, прыгающий после изменения пользователем значения).