<!--
{
  "availability" : [
    "macOS: 10.10.0 - 11.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "NotificationCenter",
  "identifier" : "/documentation/NotificationCenter/NCWidgetListViewDelegate",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "Notification Center"
    ],
    "preciseIdentifier" : "c:objc(pl)NCWidgetListViewDelegate"
  },
  "title" : "NCWidgetListViewDelegate"
}
-->

# NCWidgetListViewDelegate

The interface for handling content display and editing in the list view of a macOS Today widget.

```
protocol NCWidgetListViewDelegate : NSObjectProtocol
```

## Overview

The `NCWidgetListViewDelegate` protocol defines methods that handle content display and editing in the list view of a Today widget. The [`delegate`](/documentation/NotificationCenter/NCWidgetListViewController/delegate) of an [`NCWidgetListViewController`](/documentation/NotificationCenter/NCWidgetListViewController) must adopt the `NCWidgetListViewDelegate` protocol.

The single required method in the protocol, [`widgetList(_:viewControllerForRow:)`](/documentation/NotificationCenter/NCWidgetListViewDelegate/widgetList(_:viewControllerForRow:)), creates a view controller for the contents of one row in the widget’s list view. Optional methods in the `NCWidgetListViewDelegate` protocol support editing actions, such as adding a new list item and reordering or deleting list rows.

## Topics

### Creating a Content View Controller

[`widgetList(_:viewControllerForRow:)`](/documentation/NotificationCenter/NCWidgetListViewDelegate/widgetList(_:viewControllerForRow:))

Asks the delegate for a content view controller for the specified row.

### Adding and Deleting Rows

[`widgetList(_:didRemoveRow:)`](/documentation/NotificationCenter/NCWidgetListViewDelegate/widgetList(_:didRemoveRow:))

Tells the delegate that the specified row was removed from the list.

[`widgetList(_:shouldRemoveRow:)`](/documentation/NotificationCenter/NCWidgetListViewDelegate/widgetList(_:shouldRemoveRow:))

Asks the delegate to allow or prohibit the specified row to be removed from the list.

[`widgetListPerformAddAction(_:)`](/documentation/NotificationCenter/NCWidgetListViewDelegate/widgetListPerformAddAction(_:))

Asks the delegate to perform an action when the Add (+) button is clicked.

### Reordering List Rows

[`widgetList(_:didReorderRow:toRow:)`](/documentation/NotificationCenter/NCWidgetListViewDelegate/widgetList(_:didReorderRow:toRow:))

Tells the delegate that the specified row was moved to a new location.

[`widgetList(_:shouldReorderRow:)`](/documentation/NotificationCenter/NCWidgetListViewDelegate/widgetList(_:shouldReorderRow:))

Asks the delegate to allow or prohibit the specified row to be moved to a new location in the list.



---

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)