<!--
{
  "availability" : [
    "macOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "AppKit",
  "identifier" : "/documentation/AppKit/NSProgressIndicator",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "AppKit"
    ],
    "preciseIdentifier" : "c:objc(cs)NSProgressIndicator"
  },
  "title" : "NSProgressIndicator"
}
-->

# NSProgressIndicator

An interface that provides visual feedback to the user about the status of an ongoing task.

```
class NSProgressIndicator
```

## Overview

Progress indicators can be determinate or indeterminate. A determinate indicator displays the completion percentage of a task. An indeterminate indicator shows that the app is busy without providing a visual indication of how long the task will take.

## Topics

### Animating the progress indicator

[`-  startAnimation:`](/documentation/AppKit/NSProgressIndicator/startAnimation(_:))

Starts the animation of an indeterminate progress indicator.

[`-  stopAnimation:`](/documentation/AppKit/NSProgressIndicator/stopAnimation(_:))

Stops the animation of an indeterminate progress indicator.

[`usesThreadedAnimation`](/documentation/AppKit/NSProgressIndicator/usesThreadedAnimation)

A Boolean that indicates whether the progress indicator implements animation in a separate thread.

[`-  animate:`](/documentation/AppKit/NSProgressIndicator/animate:)

This action method advances the progress animation of an indeterminate progress animator by one step.

[`-  animationDelay`](/documentation/AppKit/NSProgressIndicator/animationDelay)

Returns the delay, in seconds, between animation steps for an indeterminate progress indicator.

[`-  setAnimationDelay:`](/documentation/AppKit/NSProgressIndicator/setAnimationDelay:)

Sets the delay, in seconds, between animation steps for an indeterminate progress indicator.

### Advancing the progress bar

[`-  incrementBy:`](/documentation/AppKit/NSProgressIndicator/increment(by:))

Advances the progress bar of a determinate progress indicator by the specified amount.

[`doubleValue`](/documentation/AppKit/NSProgressIndicator/doubleValue)

The value that indicates the current extent of the progress indicator.

[`minValue`](/documentation/AppKit/NSProgressIndicator/minValue)

The minimum value for the progress indicator.

[`maxValue`](/documentation/AppKit/NSProgressIndicator/maxValue)

The maximum value for the progress indicator.

### Observing the progress bar

[`observedProgress`](/documentation/AppKit/NSProgressIndicator/observedProgress)

The progress object to use for updating the progress view.

### Setting the appearance

[`controlSize`](/documentation/AppKit/NSProgressIndicator/controlSize)

The size of the progress indicator.

[`controlTint`](/documentation/AppKit/NSProgressIndicator/controlTint)

The progress indicator’s control tint.

[`bezeled`](/documentation/AppKit/NSProgressIndicator/isBezeled)

A Boolean that indicates whether the progress indicator’s frame has a three-dimensional bezel.

[`indeterminate`](/documentation/AppKit/NSProgressIndicator/isIndeterminate)

A Boolean that indicates whether the progress indicator is indeterminate.

[`style`](/documentation/AppKit/NSProgressIndicator/style-swift.property)

The style of the progress indicator (bar or spinning).

[`-  sizeToFit`](/documentation/AppKit/NSProgressIndicator/sizeToFit())

This action method resizes the progress indicator to an appropriate size depending on the value of [`style`](/documentation/AppKit/NSProgressIndicator/style-swift.property).

[`displayedWhenStopped`](/documentation/AppKit/NSProgressIndicator/isDisplayedWhenStopped)

A Boolean that indicates whether the progress indicator hides itself when it isn’t animating.

### Constants

[`NSProgressIndicatorThickness`](/documentation/AppKit/NSProgressIndicatorThickness)

Specify the height of a progress indicator.

[`Style`](/documentation/AppKit/NSProgressIndicator/Style-swift.enum)

Constants that specify the progress indicator’s style.

## Relationships

### Conforms To

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`Sendable`](/documentation/Swift/Sendable)

[`NSAppearanceCustomization`](/documentation/AppKit/NSAppearanceCustomization)

[`NSAccessibilityGroup`](/documentation/AppKit/NSAccessibilityGroup)

[`NSAccessibilityProgressIndicator`](/documentation/AppKit/NSAccessibilityProgressIndicator)

[`Hashable`](/documentation/Swift/Hashable)

[`NSAccessibilityProtocol`](/documentation/AppKit/NSAccessibilityProtocol)

[`NSStandardKeyBindingResponding`](/documentation/AppKit/NSStandardKeyBindingResponding)

[`NSUserActivityRestoring`](/documentation/AppKit/NSUserActivityRestoring)

[`NSAccessibilityElementProtocol`](/documentation/AppKit/NSAccessibilityElementProtocol)

[`NSAnimatablePropertyContainer`](/documentation/AppKit/NSAnimatablePropertyContainer)

[`NSTouchBarProvider`](/documentation/AppKit/NSTouchBarProvider)

[`NSDraggingDestination`](/documentation/AppKit/NSDraggingDestination)

[`CVarArg`](/documentation/Swift/CVarArg)

[`Equatable`](/documentation/Swift/Equatable)

[`NSUserInterfaceItemIdentification`](/documentation/AppKit/NSUserInterfaceItemIdentification)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`NSCoding`](/documentation/Foundation/NSCoding)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

### Inherits From

[`NSView`](/documentation/AppKit/NSView)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)