我知道您可以:
// Where CustomMacOSXController implements implements MRJAboutHandler, ...
CustomMacOSXController macOSXController = new CustomMacOSXController()
MRJApplicationUtils.registerAboutHandler(macOSXController);
MRJApplicationUtils.registerPrefsHandler(macOSXController);
//... and so on
但是我找不到任何东西来 Hook 复制和粘贴菜单,以便在调用它时,当前选择的 JTextField 会受到影响(例如,粘贴会将剪贴板粘贴到所选的 JTextField 中。
最佳答案
与 Mac OS X 系统和应用程序菜单不同,编辑菜单完全在您的程序范围内。您必须使用适当的 Action
创建并填充它. javax.swing.text.TextAction
中定义的预定义子类很方便,因为他们知道重点组件。另见此相关 Q&A和 example .例如,
Action pasteAction = new DefaultEditorKit.PasteAction();
JMenuItem pasteItem = new JMenuItem(pasteAction);
JButton pasteButton = new JButton(pasteAction);
附录:要将您的“编辑”菜单完全集成到 Mac OS X 中,您必须使用所示方法之一告诉操作系统使用您的菜单 here .要获取依赖于平台的修改键,请使用 getMenuShortcutKeyMask()
,如图所示 here .最后,查尔斯·贝尔的 HTMLDocumentEditor
是一个使用 text actions 的示例.
关于Java - 如何连接到 Mac OS 上的复制和粘贴菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10159469/