 extension ButtonScrollView {
     override func updateTrackingAreas() {
         super.updateTrackingAreas()
-        for trackingArea in trackingAreas {
-            removeTrackingArea(trackingArea)
-        }
-        let options: NSTrackingArea.Options = [
-            .mouseMoved,
-            .activeAlways
-        ]
+        trackingAreas.forEach { removeTrackingArea($0) }
+        let options: NSTrackingArea.Options = [.mouseMoved, .activeAlways]
         let trackingArea = NSTrackingArea(
-            rect: bounds,
-            options: options,
-            owner: self,
-            userInfo: nil)
+            rect: bounds, options: options, owner: self, userInfo: nil)
         addTrackingArea(trackingArea)
     }
 

extension LongPressButton {
    // This custom `userInfo` dictionary is used just for indentifying whether
    // the `NSTrackingArea` instance is the one of custom mouse enter and exit tracking.
    private var _longPressButtonTrackingTag: [AnyHashable: Bool] {
        ["_longPressButtonTracking": true]
    }

    override func updateTrackingAreas() {

        for trackingArea in trackingAreas {
            // Remove only the `NSTrackingArea` instances of custom mouse enter
            // and exit tracking, so that `toolTip` works as expected.
            let isLongPressButtonMouseTrackArea: Bool = {
                guard let userInfo = trackingArea.userInfo as? [AnyHashable: Bool] else { return false }
                return userInfo == _longPressButtonTrackAreaTag
            }()
            guard isLongPressButtonMouseTrackArea else { continue }
            removeTrackingArea(trackingArea)
        }
        let options: NSTrackingArea.Options = [.mouseEnteredAndExited, .activeAlways]
        let trackingArea = NSTrackingArea(
            rect: bounds, options: options, owner: self, userInfo: _longPressButtonTrackAreaTag)
        addTrackingArea(trackingArea)
    }

