Barre d'outils dans une fenêtre
Veillard
Membre
Bonjour à tous,
Je cherche comment créer une barre d'outils dans une fenêtre avec le bouton transparent qui permet de l'afficher ou de la masquer. J'ai rien trouvé dans IB ni dans les archives.
Merci
A+
Favouille
Je cherche comment créer une barre d'outils dans une fenêtre avec le bouton transparent qui permet de l'afficher ou de la masquer. J'ai rien trouvé dans IB ni dans les archives.
Merci
A+
Favouille
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
http://www.projectomega.org/article.php?lg=fr&php=oreilly_cocoa20&p=1
J'ai regardé sur Project Omega => trop sec comme explications et sur CocoaDev => ça ne marche pas
Bon le problème, c'est que je veux une ToolBar sur une seule fenêtre dans un nib autre que le Main.
Quelle est la première chose à faire ?
Puis initialiser une instance de la classe qui va aller chercher le nouveau Nib :
et dans la classe prefsController, faire un setup :
et importer le fichier qui contient la toolbar (une categorie par exemple comme ds PO) en haut de cette classe.
Dans le nouveau Nib, personnalise le file'owner avec la classe prefsController (ds mon cas), donc mets la tienne.
J'avais oublié le "[self setupPrefsToolbar];"
Par contre, comment fait-on pour afficher les icônes perso ?
Salut,
L'article de P? est composé de quatre pages...
- (NSToolbarItem *)toolbar:(NSToolbar *)toolbar
  itemForItemIdentifier:(NSString *)itemIdentifier
  willBeInsertedIntoToolbar:(BOOL)fla
Permet d'obtenir le toolbaritem qui accepte un setImage:(NSImage*)
donc le setImage comme d'hab, avec le nom de tes icones.
Je me disais aussi que l'article était un peu léger. J'avais pas vu les autres pages je suis un peu fatigué :fouf):
Merci à tous les deux
Encore merci à tous
[Fichier joint supprimé par l'administrateur]
Déjà ?? A minuit et demi, c'est top :fouf): :P
J'ai fait encore mieux. Les autres fenêtres ont leur barre d'outil. Honnêtement, je ne pensais pas que c'étais aussi simple :fouf):
En revanche, il faut que j'éclaircisse un point obscur sur la mise en place de mon SearchField dans ma toolbar. J'ai un plantage...
Je cherche à désactiver un item de la ToolBar mais quand je fais :
rien ne se passe...
de NSObject. C'est envoyé à la target de l'item en question. Tu retournes NO si tu veux que ca sois désactivé et YES sinon.
J'ai pas trop capté comment on l'insérait dans la barre, j'ai donc fait une bidouille qui marche :
J'ai glissé un NSSearchField SUR ma TableView puis j'ai créé un outlet sur la Search en question.
Ce qu'il se passe est très simple. Quand je supprime la Search de la barre, elle réapparaà®t sur ma TableView et inversement avec un plantage à la clé !
Je suis presque sûr qu'il ne faut pas s'y prendre de la sorte. ???
Bizarre, une fois que ton élément (searchField) est créé, et qu'il est ajouté ds la toolbar par défaut et celle de customization, il ne devrait pas y avoir de plantage.
ça plante à quel moment exactement ?
On peut voir le code ?
Plus simple pour implémenter ta recherche?
Ds ton nib, tu crée une NSView, ds cette view tu met ton searchField
Ds ton header tu met :
Tu fais les connexions, et l'action search va du searchField vers ta classe.
(ou pour envoyer l'action rechercher en continu tu utilises - (void)textDidChange:(NSNotification *)n
Sans oublier bien sûr le delegate de SearchField vers ta classe.
ensuite pour l'implementation ds la toolbar :
et le tour est joué
J'espère t'avoir aidé ?
En fait, on retourne une array contenant tous les items :
Après tu peux faire une boucle (j'vais me faire engueuler) :
Après, tu retiens cet integer puis quand tu veux ajouter le searchField au même endroit :
Engueulade Numéro 1: après rechercheIndex = i, tu peux mettre un break, ça ne sert à rien de continuer la boucle alors que tu as l'info. Ce qui te dispense également de créer une variable rechercheIndex, vu que i ne sera plus incrémenté après le break, et aura donc la bonne valeur.
Engueulade numéro 2: items renvoie un tableau rempli de NSToolBarItem et non de NSString, donc ils ne répondront pas au message -isEqualToString:, tu dois donc envoyer -identifier avant le isEqualToString:
Engueulade numéro 3: le KVC n'est mieux:
[tt]int rechercheIndex = [[[myToolbar items] valueForKey:@identifier] indexOfObject:@Recherche];[/tt]
Engueulade numéro 4: en admettant que je me suis planté dans l'engueulade numéro 2, et que c'est effectivement un tableau de string qui est renvoyé, tu peux utiliser -indexOfObject pour retrouver l'index, plutôt que de passer par une boucle.
Voili voulou.
Ca marche !
Je ne savais pas où mettre ma View, maintenant tout est plus clair. Du coup, j'ai viré ma SearchField de ma fenêtre principale.
Merci à tous les deux
Et y'en a, ils se lèvent tôt je trouve ! Non mais ho c'est les vacances hein.
Ravi d'avoir pu t'aider même si on a dû me corriger (M'en douté que ça serait Renaud :fouf): )