             make.right.equalTo(self).offset(-buttonRightMargin)
             make.bottom.equalTo(self).offset(-buttonTopBottomMargin)
         }
-        addBoundsDidChangeNotificationObserver()
     }
 
     func configureButtonAppearance(_ button: NSButton, image: NSImage) {

// MARK: - Public Functions
extension ButtonScrollView {
    func enableScrollButtons() {
        enableTopScrollButton()
        enableBottomScrollButton()
    }

    func updateButtonVisibilities() {
        updateTopButtonVisibility()
        updateBottomButtonVisibility()
    }
}

private extension ButtonScrollView {
    func enableTopScrollButton(width: Int? = defaultButtonWidth) {
        guard upButton.superview == nil else { return }

        configureButtonAppearance(upButton, image: Asset.arrowUpwardBlack.image)
        upButton.toolTip = L10n.scrollUpButton
        upButton.onPressed = { [weak self] in self?.scrollUp() }
        upButton.onLongPressed = { [weak self] in self?.scrollToTop() }
        updateTopButtonVisibility()

        // Make sure we need to call `addSubview()` of `superview`, not of `self`.
        // Seems `self` and its descendants are not controlled by auto layout,


    @objc func contentViewDidChangeBounds(_ notification: Notification) {
        updateButtonVisibilities()
    }
}

