---
title: NSScrollView
framework: appkit
role: symbol
role_heading: Class
path: appkit/nsscrollview
---

# NSScrollView

A view that displays a portion of a document view and provides scroll bars that allow the user to move the document view within the scroll view.

## Declaration

```swift
class NSScrollView
```

## Overview

Overview The NSScrollView class is the central coordinator for AppKit’s scrolling machinery, which is composed of this class, and the NSClipView and NSScroller classes. When using an NSClipView object within a scroll view (the usual configuration), you should issue messages that control background drawing state to the scroll view directly, rather than messaging the clip view.

## Topics

### Calculating Layout

- [frameSize(forContentSize:horizontalScrollerClass:verticalScrollerClass:borderType:controlSize:scrollerStyle:)](appkit/nsscrollview/framesize(forcontentsize:horizontalscrollerclass:verticalscrollerclass:bordertype:controlsize:scrollerstyle:).md)
- [contentSize(forFrameSize:horizontalScrollerClass:verticalScrollerClass:borderType:controlSize:scrollerStyle:)](appkit/nsscrollview/contentsize(forframesize:horizontalscrollerclass:verticalscrollerclass:bordertype:controlsize:scrollerstyle:).md)

### Determining Component Sizes

- [contentSize](appkit/nsscrollview/contentsize.md)
- [documentVisibleRect](appkit/nsscrollview/documentvisiblerect.md)

### Managing Graphics Attributes

- [backgroundColor](appkit/nsscrollview/backgroundcolor.md)
- [drawsBackground](appkit/nsscrollview/drawsbackground.md)
- [borderType](appkit/nsscrollview/bordertype.md)
- [documentCursor](appkit/nsscrollview/documentcursor.md)

### Managing the Views

- [contentView](appkit/nsscrollview/contentview.md)
- [documentView](appkit/nsscrollview/documentview.md)
- [addFloatingSubview(_:for:)](appkit/nsscrollview/addfloatingsubview(_:for:).md)

### Managing Scrollers

- [horizontalScroller](appkit/nsscrollview/horizontalscroller.md)
- [hasHorizontalScroller](appkit/nsscrollview/hashorizontalscroller.md)
- [verticalScroller](appkit/nsscrollview/verticalscroller.md)
- [hasVerticalScroller](appkit/nsscrollview/hasverticalscroller.md)
- [autohidesScrollers](appkit/nsscrollview/autohidesscrollers.md)

### Managing Rulers

- [rulerViewClass](appkit/nsscrollview/rulerviewclass.md)
- [hasHorizontalRuler](appkit/nsscrollview/hashorizontalruler.md)
- [horizontalRulerView](appkit/nsscrollview/horizontalrulerview.md)
- [hasVerticalRuler](appkit/nsscrollview/hasverticalruler.md)
- [verticalRulerView](appkit/nsscrollview/verticalrulerview.md)
- [rulersVisible](appkit/nsscrollview/rulersvisible.md)

### Managing Insets

- [automaticallyAdjustsContentInsets](appkit/nsscrollview/automaticallyadjustscontentinsets.md)
- [contentInsets](appkit/nsscrollview/contentinsets.md)
- [scrollerInsets](appkit/nsscrollview/scrollerinsets.md)

### Scroller Style

- [scrollerKnobStyle](appkit/nsscrollview/scrollerknobstyle.md)
- [scrollerStyle](appkit/nsscrollview/scrollerstyle.md)

### Setting Scrolling Behavior

- [lineScroll](appkit/nsscrollview/linescroll.md)
- [horizontalLineScroll](appkit/nsscrollview/horizontallinescroll.md)
- [verticalLineScroll](appkit/nsscrollview/verticallinescroll.md)
- [pageScroll](appkit/nsscrollview/pagescroll.md)
- [horizontalPageScroll](appkit/nsscrollview/horizontalpagescroll.md)
- [verticalPageScroll](appkit/nsscrollview/verticalpagescroll.md)
- [scrollsDynamically](appkit/nsscrollview/scrollsdynamically.md)
- [scrollWheel(with:)](appkit/nsscrollview/scrollwheel(with:).md)

### Updating Display After Scrolling

- [reflectScrolledClipView(_:)](appkit/nsscrollview/reflectscrolledclipview(_:).md)

### Arranging Components

- [tile()](appkit/nsscrollview/tile().md)

### Find Bar Positioning

- [findBarPosition](appkit/nsscrollview/findbarposition-swift.property.md)

### Specifying a Document’s Predominant Scrolling Behavior

- [usesPredominantAxisScrolling](appkit/nsscrollview/usespredominantaxisscrolling.md)

### Specifying the Scroll View Elasticity

- [horizontalScrollElasticity](appkit/nsscrollview/horizontalscrollelasticity.md)
- [verticalScrollElasticity](appkit/nsscrollview/verticalscrollelasticity.md)

### Flashing Overlay Scroll Bars

- [flashScrollers()](appkit/nsscrollview/flashscrollers().md)

### Zooming the Scroll View

- [allowsMagnification](appkit/nsscrollview/allowsmagnification.md)
- [magnification](appkit/nsscrollview/magnification.md)
- [magnify(toFit:)](appkit/nsscrollview/magnify(tofit:).md)
- [maxMagnification](appkit/nsscrollview/maxmagnification.md)
- [minMagnification](appkit/nsscrollview/minmagnification.md)
- [setMagnification(_:centeredAt:)](appkit/nsscrollview/setmagnification(_:centeredat:).md)

### Constants

- [NSScrollView.Elasticity](appkit/nsscrollview/elasticity.md)
- [NSScrollView.FindBarPosition](appkit/nsscrollview/findbarposition-swift.enum.md)

### Notifications

- [willStartLiveMagnifyNotification](appkit/nsscrollview/willstartlivemagnifynotification.md)
- [didEndLiveMagnifyNotification](appkit/nsscrollview/didendlivemagnifynotification.md)
- [willStartLiveScrollNotification](appkit/nsscrollview/willstartlivescrollnotification.md)
- [didLiveScrollNotification](appkit/nsscrollview/didlivescrollnotification.md)
- [didEndLiveScrollNotification](appkit/nsscrollview/didendlivescrollnotification.md)

### Initializers

- [init(coder:)](appkit/nsscrollview/init(coder:).md)
- [init(frame:)](appkit/nsscrollview/init(frame:).md)

### Structures

- [NSScrollView.DidEndLiveMagnifyMessage](appkit/nsscrollview/didendlivemagnifymessage.md)
- [NSScrollView.DidEndLiveScrollMessage](appkit/nsscrollview/didendlivescrollmessage.md)
- [NSScrollView.DidLiveScrollMessage](appkit/nsscrollview/didlivescrollmessage.md)
- [NSScrollView.WillStartLiveMagnifyMessage](appkit/nsscrollview/willstartlivemagnifymessage.md)
- [NSScrollView.WillStartLiveScrollMessage](appkit/nsscrollview/willstartlivescrollmessage.md)

### Instance Properties

- [isTouchScrollingEnabled](appkit/nsscrollview/istouchscrollingenabled.md)
- [maximumNumberOfTouchesForScrolling](appkit/nsscrollview/maximumnumberoftouchesforscrolling.md)
- [minimumNumberOfTouchesForScrolling](appkit/nsscrollview/minimumnumberoftouchesforscrolling.md)
- [refreshController](appkit/nsscrollview/refreshcontroller.md)
- [scrollGestureForRelationships](appkit/nsscrollview/scrollgestureforrelationships.md)

## Relationships

### Inherits From

- [NSView](appkit/nsview.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSAccessibilityElementProtocol](appkit/nsaccessibilityelementprotocol.md)
- [NSAccessibilityProtocol](appkit/nsaccessibilityprotocol.md)
- [NSAnimatablePropertyContainer](appkit/nsanimatablepropertycontainer.md)
- [NSAppearanceCustomization](appkit/nsappearancecustomization.md)
- [NSCoding](foundation/nscoding.md)
- [NSDraggingDestination](appkit/nsdraggingdestination.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [NSStandardKeyBindingResponding](appkit/nsstandardkeybindingresponding.md)
- [NSTextFinderBarContainer](appkit/nstextfinderbarcontainer.md)
- [NSTouchBarProvider](appkit/nstouchbarprovider.md)
- [NSUserActivityRestoring](appkit/nsuseractivityrestoring.md)
- [NSUserInterfaceItemIdentification](appkit/nsuserinterfaceitemidentification.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Views

- [NSScroller](appkit/nsscroller.md)
- [NSClipView](appkit/nsclipview.md)
