›CocoaNSDocumentのprintDocument:が呼ばれない問題アプリの印刷内容をカスタマイズする場合、NSDocumentのprintOperationWithSettings:error:やprintDocumentWithSettings:...をオーバーライドすることになりますが、デフォルトの設定ではこのメソッドが呼ばれないケースがあります。印刷...」を選択しても、ショートカットキー「Command+P」を利用しても、なぜかフォーカス中のViewの印刷機構が働いてしまいます。XIB側のアクションを編集する必要があるXIBやStoryboardで自動生成されるメニューバーの印刷ボタンには「print:」アクションがデフォルトで割り当てられています。これをNSDocumentの「printDocument:」に繋げば、ちゃんとprintOperationWithSettings:error:等が呼ばれるようになります。Application」オプションを指定している場合は、きちんとprintDocument:が割り当てられるため、今回のような問題は起こりませんprint:だとダメな理由メニューバーに設定されたアクションは、基本的にファーストレスポンダーに対して投げられます。要はフォーカス中のViewに対して優先的にアクションが渡るわけですね。「print:」アクションはNSViewが既に実装済みのメソッドであるため、NSDocumentにはprintDocument:はおろか、print:アクションすら渡ってくることは無いのです。今後、メニューバーのアクションを独自に設定する際には、NSView側のメソッド名と被っていないかに注意すると良いでしょう。