Попытка отключить прокрутку отказов для WKWebview в macOS, но WKWebview в macOS не имеет "scrollView"
let webView = WKWebView(frame: view.frame)
print(webView.scrollView)
Попытка отключить прокрутку отказов для WKWebview в macOS, но WKWebview в macOS не имеет "scrollView"
let webView = WKWebView(frame: view.frame)
print(webView.scrollView)
Одна действительно странная вещь, которую вы, возможно, заметили, - это то, что в классе WKWebView есть описание scrollView, которое теоретически «предполагается» быть в классе, но scrollView там нет. Это видно на фото ниже:
Я бы сказал, что это может быть странная процедура Apple, но посмотрите, в классе iOS присутствует то же описание, но на этот раз с фактическим scrollView:
Если здесь я не упускаю чего-то важного, это, вероятно, будет означать одно из двух:
В любом случае это очень странное открытие.
Возможно, вы захотите провести дополнительное исследование по этому поводу и, возможно, заполнить отчет об ошибке Swift .
РЕДАКТИРОВАТЬ:
Мне было указано, что это представление прокрутки на самом деле является свойством только для iOS, а ненужный комментарий - это ошибка.
scrollView
окружено #if TARGET_OS_IPHONE
. Отсутствие scrollView
в OS X не является ошибкой Swift.
- person Willeke; 08.10.2016
NSScrollView
WKWebView
(если он вообще есть)?
- person Clifton Labrum; 19.03.2020
Прокрутку можно отключить, переопределив класс WKWebView:
class NoScrollWebView: WKWebView {
override func scrollWheel(with theEvent: NSEvent) {
nextResponder?.scrollWheel(with: theEvent)
return
}
}
См. Здесь: https://stackoverflow.com/a/62746859/9519322
enclosingScrollView
- это нечто иное, он дает вам ближайший родительский NSScrollView, который содержит WKWebView, а не scrollview, используемый самим WKWebView.
- person hnh; 08.05.2021