---
title: NCWidgetProviding
framework: notificationcenter
role: symbol
role_heading: Protocol
path: notificationcenter/ncwidgetproviding
---

# NCWidgetProviding

The interface for customizing the appearance and behavior of a Today widget.

## Declaration

```swift
protocol NCWidgetProviding : NSObjectProtocol
```

```swift
protocol NCWidgetProviding : NSExtensionRequestHandling
```

## Overview

Overview The NCWidgetProviding protocol allows customization of the appearance and behavior of a Today widget.

## Topics

### Customizing the Display

- [widgetMarginInsets(forProposedMarginInsets:)](notificationcenter/ncwidgetproviding/widgetmargininsets(forproposedmargininsets:).md)
- [widgetActiveDisplayModeDidChange(_:withMaximumSize:)](notificationcenter/ncwidgetproviding/widgetactivedisplaymodedidchange(_:withmaximumsize:).md)
- [NCWidgetDisplayMode](notificationcenter/ncwidgetdisplaymode.md)

### Updating a Widget’s Contents

- [widgetPerformUpdate(completionHandler:)](notificationcenter/ncwidgetproviding/widgetperformupdate(completionhandler:).md)
- [NCUpdateResult](notificationcenter/ncupdateresult.md)

### Supporting Editing

- [widgetAllowsEditing](notificationcenter/ncwidgetproviding/widgetallowsediting.md)
- [widgetDidBeginEditing()](notificationcenter/ncwidgetproviding/widgetdidbeginediting().md)
- [widgetDidEndEditing()](notificationcenter/ncwidgetproviding/widgetdidendediting().md)

## Relationships

### Inherits From

- [NSExtensionRequestHandling](foundation/nsextensionrequesthandling.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Core Widget

- [NCWidgetController](notificationcenter/ncwidgetcontroller.md)
