IMHO Instead of class ViewController: NSViewController, NSTextStorageDelegate { Then do class ViewController: NSViewController { // ... } extension ViewController: NSTextStorageDelegate { func textStorage() }