---
title: Drawing
framework: appkit
role: collectionGroup
role_heading: API Collection
path: appkit/nsview-drawing
---

# Drawing

Draw the content of custom views and update that content when the view’s size or appearance changes.

## Topics

### Drawing the View’s Content

- [updateLayer()](appkit/nsview/updatelayer().md)
- [draw(_:)](appkit/nsview/draw(_:).md)
- [clipsToBounds](appkit/nsview/clipstobounds.md)
- [canDrawConcurrently](appkit/nsview/candrawconcurrently.md)
- [visibleRect](appkit/nsview/visiblerect.md)
- [getRectsBeingDrawn(_:count:)](appkit/nsview/getrectsbeingdrawn(_:count:).md)
- [needsToDraw(_:)](appkit/nsview/needstodraw(_:).md)
- [wantsDefaultClipping](appkit/nsview/wantsdefaultclipping.md)
- [bitmapImageRepForCachingDisplay(in:)](appkit/nsview/bitmapimagerepforcachingdisplay(in:).md)
- [cacheDisplay(in:to:)](appkit/nsview/cachedisplay(in:to:).md)
- [NSBorderType](appkit/nsbordertype.md)

### Drawing the View in Fullscreen Mode

- [enterFullScreenMode(_:withOptions:)](appkit/nsview/enterfullscreenmode(_:withoptions:).md)
- [exitFullScreenMode(options:)](appkit/nsview/exitfullscreenmode(options:).md)
- [isInFullScreenMode](appkit/nsview/isinfullscreenmode.md)
- [NSView.FullScreenModeOptionKey](appkit/nsview/fullscreenmodeoptionkey.md)

### Invalidating the View’s Content

- [setNeedsDisplay(_:)](appkit/nsview/setneedsdisplay(_:).md)
- [needsDisplay](appkit/nsview/needsdisplay.md)
- [display()](appkit/nsview/display().md)
- [display(_:)](appkit/nsview/display(_:).md)
- [displayIgnoringOpacity(_:)](appkit/nsview/displayignoringopacity(_:).md)
- [displayIgnoringOpacity(_:in:)](appkit/nsview/displayignoringopacity(_:in:).md)
- [displayIfNeeded()](appkit/nsview/displayifneeded().md)
- [displayIfNeeded(_:)](appkit/nsview/displayifneeded(_:).md)
- [displayIfNeededIgnoringOpacity()](appkit/nsview/displayifneededignoringopacity().md)
- [displayIfNeededIgnoringOpacity(_:)](appkit/nsview/displayifneededignoringopacity(_:).md)
- [translateRectsNeedingDisplay(in:by:)](appkit/nsview/translaterectsneedingdisplay(in:by:).md)
- [isOpaque](appkit/nsview/isopaque.md)
- [viewWillDraw()](appkit/nsview/viewwilldraw().md)

### Updating the View When Property Values Change

- [NSView.Invalidating](appkit/nsview/invalidating.md)
- [NSViewInvalidating](appkit/nsviewinvalidating.md)

### Managing Live Resize

- [inLiveResize](appkit/nsview/inliveresize.md)
- [preservesContentDuringLiveResize](appkit/nsview/preservescontentduringliveresize.md)
- [getRectsExposedDuringLiveResize(_:count:)](appkit/nsview/getrectsexposedduringliveresize(_:count:).md)
- [rectPreservedDuringLiveResize](appkit/nsview/rectpreservedduringliveresize.md)
- [viewWillStartLiveResize()](appkit/nsview/viewwillstartliveresize().md)
- [viewDidEndLiveResize()](appkit/nsview/viewdidendliveresize().md)

## See Also

### Managing the view’s content

- [Layout](appkit/layout.md)
- [Printing](appkit/nsview-printing.md)
- [NSViewContentSelectionInfo](appkit/nsviewcontentselectioninfo.md)
