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

# beginUpdates()

Begins a group of updates for the table view.

```
func beginUpdates()
```

## Discussion

For [`NSView`](/documentation/AppKit/NSView)-based table views, multiple row changes—that is, insertions, deletions, and moves—are animated simultaneously by surrounding calls to those method calls with [`beginUpdates()`](/documentation/AppKit/NSTableView/beginUpdates()) and [`endUpdates()`](/documentation/AppKit/NSTableView/endUpdates()). These methods are nestable.

The selected rows are maintained during the series of insertions, deletions, moves, and scrolling. If a selected row is deleted, a selection changed notification occurs after [`removeRows(at:withAnimation:)`](/documentation/AppKit/NSTableView/removeRows(at:withAnimation:)) is called.

It is not necessary to call [`beginUpdates()`](/documentation/AppKit/NSTableView/beginUpdates()) and [`endUpdates()`](/documentation/AppKit/NSTableView/endUpdates()) if only one insertion, deletion, or move is occurring and the table view is an [`NSView`](/documentation/AppKit/NSView)-based table view. When using an [`NSCell`](/documentation/AppKit/NSCell)-based table view, you must surround any insertion, deletion, or move in an update block for animations to occur.

The main reason for doing a batch update of changes to a table view is to avoid having the table animate unnecessarily.

Note that these methods should be called to reflect changes in your model; they do not make any underlying model changes.

> Note:
> For ``doc://com.apple.appkit/documentation/AppKit/NSCell``-based table views, it is required to call ``doc://com.apple.appkit/documentation/AppKit/NSTableView/beginUpdates()`` if you want to animate the ``doc://com.apple.appkit/documentation/AppKit/NSTableView/insertRows(at:withAnimation:)``, ``doc://com.apple.appkit/documentation/AppKit/NSTableView/removeRows(at:withAnimation:)``, and ``doc://com.apple.appkit/documentation/AppKit/NSTableView/moveRow(at:to:)``.

## See Also

[`removeTableColumn(_:)`](/documentation/AppKit/NSTableView/removeTableColumn(_:))

Removes the specified column from the table view.



---

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)