Java - Как подключиться к меню "Копировать и вставить" в Mac OS

Я понимаю, что вы можете:

// Where CustomMacOSXController implements implements MRJAboutHandler, ...
CustomMacOSXController macOSXController = new CustomMacOSXController()

MRJApplicationUtils.registerAboutHandler(macOSXController); 
MRJApplicationUtils.registerPrefsHandler(macOSXController);
//... and so on

Однако я не могу найти ничего, чтобы перехватить меню копирования и вставки, чтобы при его вызове это влияло на текущий выбранный JTextField (например, вставка вставит буфер обмена в выбранный JTextField.

1 ответ

В отличие от системного и прикладного меню Mac OS X, меню "Правка" полностью находится в ведении вашей программы. Вы должны создать и заполнить его подходящим Action, Предопределенные подклассы, определенные в javax.swing.text.TextAction удобны, так как они знают о целевом компоненте. Смотрите также этот связанный вопрос и пример. Например,

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

Приложение: Чтобы полностью интегрировать меню "Правка" в Mac OS X, вы должны указать операционной системе использовать ваше меню, используя один из подходов, показанных здесь. Чтобы получить зависящий от платформы ключ модификатора, используйте getMenuShortcutKeyMask(), как показано здесь. Наконец, Чарльз Белл HTMLDocumentEditor это пример, который использует текстовые действия.

Другие вопросы по тегам