NSEditor informal protocol is implemented by controllers to provide an interface for a view, the editor, to inform the controller when it has uncommitted changes.
An implementor is responsible for tracking which editors have uncommitted changes, and sending those editors
discard messages, as appropriate, to force the editor to submit, or discard, their values.
NSController provides an implementation of this informal protocol. You would implement this protocol if you wanted to provide your own controller class without subclassing