SWT ne gère pas directement le menu application sous Mac OS X. Par défaut, toute application a donc un menu ressemblant à ceci :

Il est donc nécessaire de coder la modification du menu pour y refléter le nom réel de l’application et également mapper les actions des éléments A propos, Préférences et Quitter.

Auparavant, l’emploi de CocoaUIEnhancer était obligatoire car aucune API SWT n’existait pour accéder à ce menu. Depuis la version 3.7, les choses ont changé et une API interne est disponible. Voici un exemple d’utilisation de celle-ci :

Menu systemMenu = shell.getDisplay().getSystemMenu();
if (systemMenu == null)
	return; // not MacOS X

for (MenuItem menuItem : systemMenu.getItems())
{
	switch (menuItem.getID())
	{
		case SWT.ID_ABOUT:
		{
			menuItem.setText("About " + Constants.APPLICATION_NAME); // application name
			menuItem.addListener(SWT.Selection, new Listener()
			{
				@Override
				public void handleEvent(Event event)
				{
					helpAbout();
				}
			});
			break;
		}

		case SWT.ID_PREFERENCES:
		{
			menuItem.addListener(SWT.Selection, new Listener()
			{
				@Override
				public void handleEvent(Event event)
				{
					filePreferences();
				}
			});

			break;
		}

		case SWT.ID_QUIT:
		{
			menuItem.addListener(SWT.Selection, new Listener()
			{
				@Override
				public void handleEvent(Event event)
				{
					if (!fileExit())
						event.doit = false; // ignore exit if false
				}
			});

			break;
		}

		default:
		{
			break;
		}
	}
}