Java – 如何挂钩到Mac OS上的复制和粘贴菜单

我明白你可以:

// Where CustomMacOSXController implements implements MRJAboutHandler, ... CustomMacOSXController macOSXController = new CustomMacOSXController() MRJApplicationUtils.registerAboutHandler(macOSXController); MRJApplicationUtils.registerPrefsHandler(macOSXController); //... and so on 

然而,我找不到任何东西来钩住复制和粘贴菜单,所以当它被调用时,当前select的JTextField将受到影响(例如,粘贴将剪贴板粘贴到选定的JTextField中。

与Mac OS X系统和应用程序菜单不同,编辑菜单完全在您的程序范围之内。 您必须创build并使用审批Action来填充它。 javax.swing.text.TextAction中定义的预定义子类很方便,因为它们知道所关注的组件。 参见这个相关的问答和例子 。 例如,

 Action pasteAction = new DefaultEditorKit.PasteAction(); JMenuItem pasteItem = new JMenuItem(pasteAction); JButton pasteButton = new JButton(pasteAction); 

附录:要将“编辑”菜单完全集成到Mac OS X中,必须使用此处显示的其中一种方法告诉操作系统使用菜单。 要获取平台相关修饰键,请使用getMenuShortcutKeyMask() ,如下所示。 最后,Charles Bell的HTMLDocumentEditor是一个使用文本操作的例子。