Cappuccino framework posiada domyślnie menu główne dla aplikacji. Domyślnie menu jest wyłączone. Aby je włączyć wystarczy dodać [CPMenu setMenuBarVisible:YES]; do aplikacji. Przykład kodu poniżej natomiast przykład zastosowania po stronie prawej.
@import <Foundation/CPObject.j> @implementation AppController : CPObject { } - (void)applicationDidFinishLaunching:(CPNotification)aNotification { // Fragment pokazuje domyślne menu główne w aplikacji [CPMenu setMenuBarVisible:YES]; } @end
Domyślnie CPMenu w CPApplication posiada następującą strukturę:
Aby wyświetlić ukryty element menu wystarczy zastosować poniższy kod w metodzie applicationDidFinishLaunching:
// Wysyłanie wiadomości do singleton aplikacji by zwrócił obiekt CPMenu var mainMenu = [[CPApplication sharedApplication] mainMenu]; // Odszukaj element o indeksie 3 (liczone od zera - Edit) i pokaż go [[mainMenu itemAtIndex:3] setHidden:NO]; [CPMenu setMenuBarVisible:YES];
Cappuccino nie posiada w wersji 0.7 zaimplementowanej wielojęzyczności. Dlatego elementy zdefiniowane na sztywno jak domyślne menu aplikacji należy przetłumaczyć - czyli w konsekwencji utworzyć i dodać „ręcznie”.
Możliwe że w przyszłych wersjach Cappuccino, menu główne będzie definiowane w pliku .cib.
Kod z spersonalizowanym menu aplikacji:
@import <Foundation/CPObject.j> @implementation AppController : CPObject { } - (void)applicationDidFinishLaunching:(CPNotification)aNotification { // Utworzenie głównego obiektu menu "MainMenu" - nazwa zarezerwowana dla menu głównego. var mainMenu = [[CPMenu alloc] initWithTitle:@"MainMenu"]; [mainMenu setAutoenablesItems:NO]; var bundle = [CPBundle bundleForClass:[CPApplication class]], newMenuItem = [[CPMenuItem alloc] initWithTitle:@"Nowy" action:@selector(newDocument:) keyEquivalent:@"N"]; [newMenuItem setImage:[[CPImage alloc] initWithContentsOfFile:[bundle pathForResource:@"CPApplication/New.png"] size:CGSizeMake(16.0, 16.0)]]; [newMenuItem setAlternateImage:[[CPImage alloc] initWithContentsOfFile:[bundle pathForResource:@"CPApplication/NewHighlighted.png"] size:CGSizeMake(16.0, 16.0)]]; [mainMenu addItem:newMenuItem]; // Ustawienie spersonalizowanego menu aplikacji [[CPApplication sharedApplication] setMainMenu:mainMenu]; // Menu widoczne [CPMenu setMenuBarVisible:YES];