Faire un lien entre un bouton et une classe
ObjectiveSwift
Membre
Bonjour,
J'utilise très bien IB dans le cadre d'un développement iOS mais concernant OS X, quel est l'astuce pour faire un lien entre un bouton (ou tout autre view) et une classe perso. Pour le moment je n'arrive a le faire qu'avec l'AppDelegate.
J'ai essayé toute sorte d'héritage et autre mais impossible.
Merci.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Tu peux tirer une outlet vers toute instance qui
1) est instanciée dans le nib/storyboard ou
2) est le File's Owner du nib.
L'AppDelegate est le cas 1).
Pour le 2), il faut parfois changer la classe de File's Owner si elle n'est pas bonne.
Je suis donc dans le cas 2, je dois créer un lien entre le File's Owner et ma nouvelle classe ? (je suis en train de regarder)
Le File's Owner est l'objet qui charge le nib. (C'est lui qui "possède" le nib, d'où son nom).
La question qu'il faut que tu te poses est: "Qui charge le nib ?".
(C'est en général une NSApplication, un NSDocument, un NSWindowController ou un NSViewController).
Bon, je ne comprends pas. Est-ce que Xcode 6 pose problème avec Maverick pour faire des App OS X ?
Parce que a peine un projet créé, je ne peux même pas faire de build.
No visible @interface for 'NSViewController' declares the selector 'viewDidLoad'
Le livre de Hillegass "programmation Cocoa sous Mac OsX" reste d'actualité. Tout ce que tu demandes y est très bien expliqué. Le lire te fera gagner beaucoup de temps.
IB est hyper simple. Dans IB, tu indexes un onglet "classe" dans la marge à ta AppDelegate, (ou à un NSDocument, un NSWindowController ou un NSViewController... Perso, c'est souvent l'AppDelegate) Ensuite, tu fais "ctrl" en cliquant sur cette icône : toutes tes méthodes apparaissent, il n'y a plus qu'à relier (cmd + action de la souris) l'index de ta méthode au bouton, à la view, etc. C'est hyper simple, hyper rapide, mais comme toujours avec Apple, "il faut connaà®tre".
Le bouquin te parlera aussi de NSCoding. L'essayer c'est l'adopter (grande invention, hyper efficace lorsque tu fais des updates). Il te parlera des NSNotifications. Les essayer, c'est les adopter (hyper efficace quand ton appli dépasse un certain degrés de complexité). Il te parlera de l'internationalisation de ton appli (pour la "faire parler en toutes les langues"). Il t'expliquera comment faire marcher le undo/redo (obligatoire pour le Mac apple Store). Bon, de bonnes bases quoi!
Je ne sais pas comment je dois prendre ton message. Bon, j'ai ce bouquin et je voulais justement le lire mais j'avais justement peur qu'il soit largement dépassé. Après ton intervention, je vais me programmer ça pour très vite. Si en plus ça réponds aux questions des NSCoding et NSNotification, que je ne connais pas pour le moment, alors faut vraiment que je fonce.
Par contre, livre ou pas, je suis quand même très surpris d'avoir ce genre d'erreur direct à la création d'un projet sans rien toucher.
Sinon, y a tellement de choses à savoir et de doc à lire que ça prends quand même du temps. Même quand on est motivé.
Merci en tout cas pour vos messages.
NSViewController ne comporte une méthode -viewDidLoad que depuis OS 10.10 Yosemite.
Utilise -awakeFromNib sur les versions antérieures.