ドキュメントベースのアプリケーションがあります。ユーザーが NSTextView で選択したテキストを右クリックしたときに、状況依存の情報を表示するコンテキスト メニューを追加したいと考えています。
私はAppleのドキュメントのアドバイスに従いました。
- XIB ファイルにルート オブジェクトとして NSMenu を追加しました。
- NSMenu インスタンスを
menu
NSTextView のアウトレットに接続しました。 - NSMenu 内の NSMenuItem に IBAction を接続しました。
ここまでは順調ですね。すべてが期待どおりに機能します。メニュー項目が表示され、選択するとアクションが呼び出されます。
メニュー項目を適切に構成できるように、メニューが表示される前に、選択したテキストを NSTextView から取得する必要があります。ドキュメントによると
コンテキスト メニューをカスタマイズする必要がある場合は、適切なオブジェクトをメニューのデリゲートとして設定し、menuWillOpen: メソッドを実装して、表示される直前に適切と思われるようにメニューをカスタマイズします。
NSMenu のデリゲートをファイルの所有者に接続します。デリゲート メソッドは呼び出されません。(menuWillOpen:
私が必要とする唯一のものですが、他のものも試しました)。
メニュー項目が選択されたときに呼び出される IBAction 内にブレークポイントを設定します。デバッガーでメニューを調べると、デリゲート メソッドを実装するオブジェクトにデリゲートが正しく設定されていることがわかります。
他に確認することはありますか?私が露骨に間違っていることはありますか?
Xcode v4.6.3
SDK v10.8
展開ターゲット 10.7