Placez des informations dans la barre Menu Mac article

voix
0

J'espère que ce ne soit pas trop général. Je suis un débutant et je suis en train d'apprendre comment faire une barre d'état (menu sur le côté droit) pour Mac en Objective-C.

J'ai réussi à créer les grandes lignes, mais je ne sais pas ce que la méthode à utiliser pour une action particulière: Je voudrais quand le menu déroulant apparaît pour elle d'appeler une méthode qui renverra la chaîne à afficher .

En d'autres termes, comment puis-je faire le menu appeler une méthode et d'afficher sa valeur de retour.

En cacao s'il vous plaît.

Merci!

Créé 17/08/2010 à 17:04
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
2

Vous créez une méthode IBAction. Toute méthode étiqueté comme tel sera vu par le contrôleur de la classe dans Interface Builder. Donc, si vous mettez une telle méthode dans votre classe de contrôleur de l'application, puis dans le constructeur d'interface, vous verrez la méthode dans votre objet contrôleur de l'application. Maintenant que vous pouvez le voir dans IB, connectez-vous cette méthode à l'élément de menu par commande faisant glisser de l'élément de menu au contrôleur. Procédé de IBAction a un argument appelé « expéditeur » qui est l'expéditeur du message. Donc, si vous accrochez la méthode à l'élément de menu, puis l'expéditeur sera le NSMenuItem parce que c'est l'objet qui appelle la méthode. Et un NSMenuItem répond à la « setTitle: » la méthode que vous pouvez utiliser pour changer le titre. Donc, quelque chose comme ça fonctionnerait ...

Dans le fichier « .h »

-(IBAction)displayMenuItemtitle:(id)sender;

Dans le fichier « .m »

-(IBAction)displayMenuItemtitle:(id)sender {
NSString* newTitle = @"my new title";
[sender setTitle:newTitle];
}

EDIT: Après la relecture de votre question , vous voulez peut - être l'objet NSMenu pour afficher le nouveau titre lorsque le menu il sur le point d'ouvrir. NSMenu a une méthode déléguée menuWillOpen :. Donc , configurer votre contrôleur de l' application pour être le délégué du NSMenu. Ensuite , dans votre classe AppController utiliser ...

- (void)menuWillOpen:(NSMenu *)menu {
NSArray* menuItems = [menu itemArray];
NSMenuItem* theMenuItem = [menuItems objectAtIndex:0];
NSString* newTitle = @"my new title";
[theMenuItem setTitle:newtitle];
}
Créé 17/08/2010 à 20:07
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more