When I click "Show Keepboard" on Mac, it is usually hidden behind a window and not visible. I find this code inside MainFrame to work really well: public void showFrame() { setVisible(false); clearFilters(); setVisible(true); if (Platform.isMac()) { SwingUtilities.invokeLater(() -> { try { if (Desktop.isDesktopSupported()) { Desktop desktop = Desktop.getDesktop(); desktop.getClass().getMethod("requestForeground", boolean.class) .invoke(desktop, false); } } catch (Exception ex) { System.err.println("Failed...