ビュー ( ) を含むツールバー項目がNSButtonあり、ビューのターゲットが に設定されてnilいるため、アクションをトリガーするときにレスポンダー チェーンを検索します。ただし、ファーストレスポンダーに対して検証する方法を試すのに問題があります。
NSToolbarItem をサブクラス化し、実装し-(void)validateました。私が見つけた参照によると、 を呼び出して最初のレスポンダーを取得し[[[self view] window] firstResponder]、レスポンダー チェーンが または のいずれNSToolbarItemValidationかを実装しているかどうかNSUserInterfaceValidationsを確認し、適切な検証メソッドを呼び出します。
ただし、 を呼び出すと、ウィンドウとして[[self view] window]返さnilれるため、最初のレスポンダーを取得できません。
違いがあるかどうかはわかりませんが、コードで記述するのではなく、XIB でツールバーを作成しています。
NSToolbar.h を見ると、含まれているウィンドウを参照する ivar があるため、 を呼び出すことで最初のレスポンダーを見つけることができましたが、これ[[[self toolbar] valueForKey:@"window"] firstResponder]はちょっとしたハックであり、文書化された/安定したものを使用したいと思います。