Bug icones désactivées
muqaddar
Administrateur
Salut,
J'ai un petit soucis sur une toolbar (j'en ai 2), les icones sont désactivées alors que je les ai bien activées.
//activation des icones
- (BOOL)validateToolbarItem:(NSToolbarItem *)toolbarItem
{
if (([[toolbarItem itemIdentifier] isEqualToString:@GeneralItem]) ||
([[toolbarItem itemIdentifier] isEqualToString:@PaysItem])) {
return YES;
}
}
bizarre, bizarre, je sèche, et je cherche à savoir si ça peut venir d'une interférence avec mon autre toolbar, celle de l'appli.
++
J'ai un petit soucis sur une toolbar (j'en ai 2), les icones sont désactivées alors que je les ai bien activées.
//activation des icones
- (BOOL)validateToolbarItem:(NSToolbarItem *)toolbarItem
{
if (([[toolbarItem itemIdentifier] isEqualToString:@GeneralItem]) ||
([[toolbarItem itemIdentifier] isEqualToString:@PaysItem])) {
return YES;
}
}
bizarre, bizarre, je sèche, et je cherche à savoir si ça peut venir d'une interférence avec mon autre toolbar, celle de l'appli.
++
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
- faute de frappe dans l'ID de l'item (c'est pourquoi je définis toujours une constant avec #define)
- l'action ou la target sont érronés
- ...
si les deux toolbars ont un identifiant différent, y'a pas de pb. par contre si elles ont le même delegate, il vaut peut-être mieux tester la toolbar concernée, surtout si des items ont le même identifiant dans les 2 toolbars ?
(euh, je ne sais pas si je suis très clair, là
ps: manque un 'return NO' juste avant la fin de la fonction
Si ça peut aider :
Quand je lance la fenêtre prefs, elles sont d'abord activées et 1/4 sec après désactivées...
essaye d'insérer NSLog (@item: %@", [toolbarItem itemIdentifier]) dans validateToolbarItem pour vérifier qu'il passe bien par là et afficher ce qu'il reçoit...
J'ai testé dans l'autre toolbar qui affiche bien le nom des items.
Curieux, il ne rentre pas dans cette méthode on dirait.
et
- (NSToolbarItem *)toolbar:(NSToolbar *)toolbar itemForItemIdentifier:(NSString *)itemIdentifier willBeInsertedIntoToolbar:(BOOL)flag
sont bien dans la même classe ?
et si tu postait tout le contenu de ta classe ? (.h et .m)
ps: maintenant que tu as mis les #define, tu peux remplacer tous les @GeneralItem par GeneralItem dans le .m, parce que si un jour tu fais une faute de frappe dans @GeneralItem, tu ne t'en rendrais pas compte à la compil'... (et pareil pour PaysItem)
- (void)selectGeneralView {
[prefsWindow setContentView: blankView];
[self resizeWindowToSize: generalSize];
[prefsWindow setContentView: generalView];
}
- (void)selectPaysView {
[prefsWindow setContentView: blankView];
[self resizeWindowToSize: paysSize];
[prefsWindow setContentView: paysView];
}
tu as oublié ":(id) sender"
;D
J'avais comparé avec mon autre toolbar (main), et j'avais pas non plus les sender et ça marchait pourtant. Ce que je n'avais pas vu c'est que dans l'appel de la méthode action :
@selector(selectMainView)
Je n'avais pas mis les ":" .
Donc, qu'est-ce qui est le mieux ?
ça :
@selector(selectMainView
puis ça :
- (void)selectMainView: (id) sender
ou bien ça :
@selector(selectMainView)
puis ça :
- (void)selectMainView
? ;-)
et puis le sender étant l'objet qui a envoyé le message, il peut être utile d'y avoir accès (le toolbaritem dans notre cas)
[edit]
YES YES YES !!
j'ai ma première graine de chocolat !
[/edit]
Avec la vitesse à laquelle tu réponds, tu ne vas pas tarder à avoir plein de cabosses (et non de graines). Et oui, en fait la cabosse contient les fèves de cacao. C'est cool on se cultive (humour) grâce à Apple.