procedure TCocoaStatusItemHandle.lclSetTrayIcon(ATrayIcon: TCustomTrayIcon);
var
image: NSImage;
begin
TrayIcon := ATrayIcon;
// Shows the icon
if (ATrayIcon.icon <> nil) and (ATrayIcon.icon.Handle <> 0) then
begin
image := TCocoaBitmap(ATrayIcon.icon.Handle).image;
image.setTemplate(true); // < --- added this line
if image <> nil then statusitem.setImage(image);
end;
// Show the menu
if (ATrayIcon.PopUpMenu <> nil) then
begin
ATrayIcon.PopUpMenu.HandleNeeded();
//ATrayIcon.PopUpMenu.
if Assigned(statusitem.menu) and (statusitem.menu.delegate = NSMenuDelegateProtocol(self)) then
statusitem.menu.setDelegate(nil);
statusitem.setMenu(TCocoaMenu(ATrayIcon.PopUpMenu.Handle));
TCocoaMenu(ATrayIcon.PopUpMenu.Handle).setDelegate( self);
end;
end;