Précédent   Forum des professionnels en informatique > Général Développement > Programmation système > Mac & iOS > Cocoa
Cocoa Forum d'entraide sur le framework Cocoa (Mac)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 10/02/2010, 10h07   #1
Invité régulier
 
Inscription : juillet 2009
Messages : 35
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 35
Points : 9
Points : 9
Par défaut Comment gère t'on les événements avec cocoa ?

Bonjour,

Je me lance dans cocoa, avant j'ai fais un peu de c#.
Je deviens fou, je cherche depuis deux jours comment gérer un événement avec cocoa, Xcode et Interface Builder. Alors je m'en remets a vous :)
J'aimerais pouvoir remplir un champ (chpSortie par exemple) quand je commence a rentré quelque chose dans un autre champ a chaque appuie sur une touche du clavier (le champ chpEntre par exemple).
En gros dans certain language que je connais mieux ce serait un truc du style onChange ou onTextChange ou onKeyPress.
Mais la je comprends rien, la seul chose que j'ai trouvé sur le net c'est :
- (void)keyDown:(NSEvent *)theEvent {
....
}
Mais après je suppose qu'il n'y a pas que ca a rajouter dans le .m ?
theEvent se réfère a quoi ?
Rien a faire d'en Interface Builder ?
Comment relier l'évènement au champ text (textfield)
Ca fais une semaine que je m'y suis mis et en général je ne suis pas encore dans la maitrise de la poo donc s'il vous plais soyez indulgent :)
Je suis perdu a ce niveau la. Merci pour votre aide :)

Dernière modification par kOrt3x ; 09/05/2010 à 09h50.
robertopowa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2010, 13h03   #2
Expert Confirmé
 
Homme
Inscription : septembre 2006
Messages : 2 252
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2006
Messages : 2 252
Points : 2 682
Points : 2 682
lire
http://developer.apple.com/Mac/libra...hitecture.html
ne fera pas de tort…

pour votre question :
keyDown est une méthode de NSResponder qui est une super classe de NSTextField…
si vous partez dans cette direction cela signifie faire une sous-classe de NSTextField, ré-implémenter votre version de keyDown et dire dans Interface Builder que ce champ texte est de votre propre sous-classe de NSTextField…

inconvénient : à vous de gérer tout ce que peut signifier un keyDown… (n'importe quel keydown…)
on peut dire que cette approche est "low-level"…

autre approche :
dans Interface Builder, lier la propriété "delegate" du NSTextField à un objet qui implémentera l'une ou plusieurs de :
Code :
1
2
3
4
- (void)controlTextDidBeginEditing:(NSNotification *)aNotification;
- (void)controlTextDidChange:(NSNotification *)aNotification;
- (void)controlTextDidEndEditing:(NSNotification *)aNotification;
et il est évidemment possible d'assigner le delegate par code plutôt que par InterfaceBuilder…
(pour peu que vous ayez un objet qui ait une référence sur ce NSTextField…)

cette approche est plus "high level"…
JeitEmgie est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 07h35.


 
 
 
 
Partenaires

Hébergement Web