我知道你可以:
// Where CustomMacOSXController implements implements MRJAboutHandler, ...
CustomMacOSXController macOSXController = new CustomMacOSXController()
MRJApplicationUtils.registerAboutHandler(macOSXController);
MRJApplicationUtils.registerPrefsHandler(macOSXController);
//... and so on
但是我找不到任何东西来挂钩复制和粘贴菜单,这样当它被调用时,当前选择的JTextField将受到影响(例如粘贴会将剪贴板粘贴到选定的JTextField中。
答案 0 :(得分:4)
与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所示。最后,Charles Bell的HTMLDocumentEditor
是一个使用text actions的例子。