Founding sponsorYour name here
Journal

Scroll the pane — on macOS this whole thing is a scroller, not a scrollbar

Scroll View (Scroller)

/ NSScrollView · NSScroller /

also called scrolling view, scroll container, scrollbar, NSScroller

A scroll view is a viewport onto content larger than the visible region. AppKit calls the bar at its edge a scroller: its draggable thumb is the knob and the track behind it is the knob slot. Modern overlay scrollers float above content and fade away, while legacy scrollers reserve permanent layout space.

If you called it…

the area you can scroll insidethe scrollbar on the side of a mac windowthe little thumb you drag to scrollthe track behind the scrollbar thumbthe scrollbar that fades away until you scrollthe rubber band bounce at the end of a list

…you meant a scroll view (scroller).

Anatomy — every part, named

  1. 1
    ScrollerNSScroller

    The control most people call a scrollbar is formally a scroller in AppKit.

  2. 2
    Scroller knob (thumb)NSScroller.knobProportion

    “The little thumb you drag” is the scroller knob; its length reflects how much content is visible.

  3. 3
    Knob slot (track)NSScroller.drawKnobSlot(in:highlight:)

    The channel behind the knob is the knob slot, commonly called the scrollbar track.

  4. 4
    Overlay vs. legacy scrollerNSScroller.Style

    An overlay scroller fades over the content; a legacy scroller stays visible and takes up layout space.

Prompt — paste into your agent

Use a native Scroll View (NSScrollView; SwiftUI: ScrollView). In AppKit, call the edge control an NSScroller, with its draggable knob inside the knob slot; respect NSScroller.Style overlay versus legacy and preserve native scroll elasticity at the content boundaries.

Debug prompt — when it misbehaves

Paste this, then describe what you’re seeing — it hands your agent the classic failure modes to rule out first.

Debug my macOS scroll view (NSScrollView, NSClipView). Rule out: content origin confusion because the document view is not flipped; overlay vs legacy scroller styles changing available width between users; the rubber-band overscroll disabled or doubled by elasticity settings; wheel events swallowed by a nested scroll view; scrollToVisible fighting responsive-scrolling prefetch. The symptom:

In code

The exact names this thing goes by in code — each row is one framework’s word for it. Use the row that matches your project (or paste it into your prompt).

AppKitNSScrollView
AppKitNSScroller
SwiftUIScrollView
AppKitNSClipView

See also

Search

Describe the UI element you're thinking of