Я пытаюсь выяснить, когда пользователь прокручивает до конца NSTableView
. Поэтому, конечно, табличное представление встраивается как обычно в NSClipView
, а в NSScrollView
. Больше нет изменений, кроме факта добавления вставок в ClipView (вверху: 20, слева / справа: 20, внизу: 0).
Чтобы получить уведомление о прокрутке, я подключил розетку NSClipView
.
Поэтому я использую этот код:
self.clipView.postsBoundsChangedNotifications = true
NotificationCenter.default.addObserver(self,
selector: #selector(scrollViewDidScroll(notification:)),
name: NSView.boundsDidChangeNotification,
object: self.clipView)
...
@objc func scrollViewDidScroll(notification: Notification) {
print("\(self.clipView.contentInsets.bottom) - \(self.clipView.contentInsets.top)")
print(self.clipView.bounds)
}
Если я нахожусь на вершине ScrollView, результаты печати выглядят так:
0.0 - 20.0
(-20.0, -20.0, 600.0, 556.0)
// x y width height
Мне кажется, это нормально. Но если я внизу, это выглядит так:
0.0 - 20.0
(-20.0, 595.0, 600.0, 556.0)
В моем понимании значение y должно быть 536, а не 595. Откуда эта разница?