A set of methods that controllers can implement to enable an editor view 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