NSTableViewDelegate
プロトコルをいくつかのカスタムメソッドで展開したいと思います。たとえば、カスタムのNSTableView
サブクラスが、特定のイベントのデリゲートに通知する必要があります。別のプロトコルを作成するのではなく、既存のプロトコルをカスタムメソッドに追加することは可能ですか?ここで最善のアプローチは何でしょうか?NSTableViewDelegateプロトコルにメソッドを追加するには?
NSTableViewDelegate
への書き込みと拡張を試みましたが、メソッドが呼び出されましたが、この拡張では、デリゲートクラス(サブクラスNSViewController
)にアクセスできません。コントローラーが特定の方法でイベントに応答する必要があるため、それはまったくのアイデアです。
したがって、どのようにしてNSTableViewDelegate
プロトコルにメソッドを追加し、デリゲートクラスの実装を提供できますか?
冗長性のために申し訳ありません:)
例コード(プロジェクトに、それは少し異なりますが、考え方は同じです):
extension NSTableViewDelegate {
func didBecomeFirstResponder(_ tableView: NSTableView) {
isTableViewFirstResponder = true //warning: Use of unresolved identifier 'isTableViewFirstResponder'
}
func didResignFirstResponder(_ tableView: NSTableView) {
isTableViewFirstResponder = false //warning: Use of unresolved identifier 'isTableViewFirstResponder'
}
}
isTableViewFirstResponder
は、デリゲートクラスのプロパティです。 スウィフトはどこを探すべきか分かりません。 isTableViewFirstResponder
が宣言されているクラスを指定するにはどうすればよいですか?
'しかし、この拡張では、私はデリゲートクラスにアクセスできない ' - あなたはこれを説明できますか?どのくらい正確にアクセスしたいですか?コードを追加する方が良いでしょう。 – user28434
ご質問ありがとうございます。コードスニペットを追加しました。 –
'NSTableViewDelegate'は' isTableViewFirstResponder'について知りません。私はデリゲートではなくNSTableViewを拡張したいと思う。 – shallowThought