---
title: NSScrubberLayout
framework: appkit
role: symbol
role_heading: Class
path: appkit/nsscrubberlayout
---

# NSScrubberLayout

An abstract class that describes the layout of items within a scrubber control.

## Declaration

```swift
@MainActor class NSScrubberLayout
```

## Overview

Overview To determine the layout of items in a scrubber, use one of the built-in subclasses (NSScrubberProportionalLayout or NSScrubberFlowLayout), or create a custom subclass to implement your own layout.

## Topics

### Creating a scrubber layout

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

### Configuring a scrubber layout

- [layoutAttributesClass](appkit/nsscrubberlayout/layoutattributesclass.md)
- [scrubber](appkit/nsscrubberlayout/scrubber.md)
- [visibleRect](appkit/nsscrubberlayout/visiblerect.md)
- [invalidateLayout()](appkit/nsscrubberlayout/invalidatelayout().md)

### Subclassing a scrubber layout

- [prepare()](appkit/nsscrubberlayout/prepare().md)
- [scrubberContentSize](appkit/nsscrubberlayout/scrubbercontentsize.md)
- [layoutAttributesForItem(at:)](appkit/nsscrubberlayout/layoutattributesforitem(at:).md)
- [layoutAttributesForItems(in:)](appkit/nsscrubberlayout/layoutattributesforitems(in:).md)
- [shouldInvalidateLayoutForSelectionChange](appkit/nsscrubberlayout/shouldinvalidatelayoutforselectionchange.md)
- [shouldInvalidateLayoutForHighlightChange](appkit/nsscrubberlayout/shouldinvalidatelayoutforhighlightchange.md)
- [shouldInvalidateLayoutForChange(fromVisibleRect:toVisibleRect:)](appkit/nsscrubberlayout/shouldinvalidatelayoutforchange(fromvisiblerect:tovisiblerect:).md)
- [automaticallyMirrorsInRightToLeftLayout](appkit/nsscrubberlayout/automaticallymirrorsinrighttoleftlayout.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Inherited By

- [NSScrubberFlowLayout](appkit/nsscrubberflowlayout.md)
- [NSScrubberProportionalLayout](appkit/nsscrubberproportionallayout.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSCoding](foundation/nscoding.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [Sendable](swift/sendable.md)

## See Also

### Scrubber layouts

- [NSScrubberFlowLayout](appkit/nsscrubberflowlayout.md)
- [NSScrubberFlowLayoutDelegate](appkit/nsscrubberflowlayoutdelegate.md)
- [NSScrubberProportionalLayout](appkit/nsscrubberproportionallayout.md)
- [NSScrubberLayoutAttributes](appkit/nsscrubberlayoutattributes.md)
