Pourquoi NSButton et NSButtonCell
olof
Membre
Bonjour à tous,
en essayant de créer des boutons dynamiquement dans une NSView perso, je tombe sur deux objets, NSButton et NSButtonCell. Mais j'ai de la peine à comprendre le but exact de ces deux objets. Quelqu'un aurait un lien qui m'en dirait un poil plus ? Y'a-t-il un lien entre ces deux objets lorsqu'on créé un bouton dans une fenêtre ?
Parce que là , je sèche !
Merci !
en essayant de créer des boutons dynamiquement dans une NSView perso, je tombe sur deux objets, NSButton et NSButtonCell. Mais j'ai de la peine à comprendre le but exact de ces deux objets. Quelqu'un aurait un lien qui m'en dirait un poil plus ? Y'a-t-il un lien entre ces deux objets lorsqu'on créé un bouton dans une fenêtre ?
Parce que là , je sèche !
Merci !
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Lire les documents "Control and Cell Programming Topics" et "Button Programming Topics"
file:///Developer/ADC%20Reference%20Library/documentation/Cocoa/Conceptual/ControlCell/index.html#//apple_ref/doc/uid/10000015i
En gros NSButtonCell est une vue graphique, dont les événements sont contrôlés par NSButton
Par contre, j'ai le problème suivant. J'ai une vue perso (qui étend NSView) dans laquelle je fais des dessins. J'y place aussi (dynamiquement) un bouton. Parfait, il s'affiche comme je le veux. Mais lorsque je clic dessus, rien ne se passe. Je veux dire par là qu'il ne change même pas de couleur momentanément (mon bouton est de type NSMomentaryPushInButton). Si j'en créé un à côté de ma vue person avec IB (sans le relier à une action) il devient gris quand je clic dessus. Pas le mien.
Y'a-t-il quelque chose de spécial à faire ?
Voici le bout de code qui affiche ce bouton :
Merci !
Drôle d'idée de mettre le bouton à l'intérieur de la custom view
Pourquoi ne pas la mettre dans la fenêtre (mettre un outlet window au contrôleur, et ajouter le bouton à [window contentView])
Manque de synchronisation entre le rafraichissement de la fenêtre et du bouton? ou bien problème du NSButtonCell associé ? essaye les méthodes [.. cellClass] de la classe NSControl parent.
[Fichier joint supprimé par l'administrateur]
Il faut borderiser le bouton avec setBordered:
AcceptsFirstresponder: rien à voir ?!
En effet... Je vais voir ça de plus près. Merci d'avoir pris le temps de le faire !
le setBordered ne change rien.
J'ai parlé du AcceptsFirstResponder pour préciser que l'action était bien transmise à la cible (sans le AcceptsFirstResponder, c'est pas le cas) mais que graphiquement ça ne changait rien...
Oups, j'avais pas vu ta réponse, désolé !
Pour le premier point, le but est de faire quelque chose de réutilisable. J'ai un objet view perso qui gère un calendrier et le choix du mois et de l'année se fait dans cet objet.
Pour le deuxième point, je regarde ça dès ce soir.
Merci
Or il ne faut pas que des NSView de même niveau se chevauchent ! (et comme NSButton dérive de NSView...)
Donc ne faudrait-il pas ajouter le bouton en tant que subview (de sa custom view) ? (via [tt]addSubView:[/tt])
Ca tombe bien, c'est droit ce que je fais, voir mon deuxième post :
J'ajoutais mes boutons dans la méthode drawRect. C'est bête hein ? Bon, j'ai une excuse, je débute.
J'ai mis tout ça dans la méthode initWithFrame et ça roule.
Merci pour les coups de main
Une triple tournée générale et on oublie ça ! ::) ;D
Avec plaisir !!!!
Santé à tous