0
右クリックのコンテキストメニューからいくつかの項目を削除する必要がありますが、ツールバーには 'toolbarView'にアクセスするパブリックAPIが含まれていません。NSToolbarのコンテキストメニューをカスタマイズするには?
プライベートAPIを使用せずにメニューをカスタマイズすることはできますか?
右クリックのコンテキストメニューからいくつかの項目を削除する必要がありますが、ツールバーには 'toolbarView'にアクセスするパブリックAPIが含まれていません。NSToolbarのコンテキストメニューをカスタマイズするには?
プライベートAPIを使用せずにメニューをカスタマイズすることはできますか?
ツールバーが作成されたときは、すなわち-[awakeFromNib]
で、ツールバーのコンテキストメニューにアクセスして変更することができます
- (NSMenu *)toolbarMenuInWindow:(NSWindow *)window
{
NSView *contentView = window.contentView;
NSView *toolbarView = contentView.superview.subviews.lastObject;
NSMenu *toolbarMenu = toolbarView.menu;
return toolbarMenu;
}
今、あなたは直接メニュー項目を編集し、それらを非表示にしたり無効にすることができます。
私の現在の解決策では、NSWindowをサブクラス化し、 'mouseDown:'と 'rightMouseDown:'メソッドをオーバーライドしようとしました。それは '安全に働く'。 – Elden