---
title: NSController
framework: appkit
role: symbol
role_heading: Class
path: appkit/nscontroller
---

# NSController

An abstract class that implements the NSEditor and NSEditorRegistration informal protocols required for controller classes.

## Declaration

```swift
class NSController
```

## Topics

### Managing editing

- [objectDidBeginEditing(_:)](appkit/nscontroller/objectdidbeginediting(_:).md)
- [objectDidEndEditing(_:)](appkit/nscontroller/objectdidendediting(_:).md)
- [commitEditing()](appkit/nscontroller/commitediting().md)
- [commitEditing(withDelegate:didCommit:contextInfo:)](appkit/nscontroller/commitediting(withdelegate:didcommit:contextinfo:).md)
- [discardEditing()](appkit/nscontroller/discardediting().md)
- [isEditing](appkit/nscontroller/isediting.md)

### Initializers

- [init()](appkit/nscontroller/init().md)
- [init(coder:)](appkit/nscontroller/init(coder:).md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Inherited By

- [NSObjectController](appkit/nsobjectcontroller.md)
- [NSUserDefaultsController](appkit/nsuserdefaultscontroller.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSCoding](foundation/nscoding.md)
- [NSEditor](appkit/nseditor.md)
- [NSEditorRegistration](appkit/nseditorregistration.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Core Controllers

- [NSObjectController](appkit/nsobjectcontroller.md)
