Récupérer la valeur d'un NSTextxField
enka
Membre
Bonjour,
Je me remet à la programmation et j'ai donc commencé par un petit programme. Le but (pour le moment) est de récupérer la valeur d'un NSTextField et d'afficher cette valeur dans un autre.
J'ai donc une fenêtre avec ces deux champs de texte, un bouton pour récupérer la valeur du premier et la passer au second, un bouton pour réinitialiser les deux champs de texte.
J'arrive à passer une valeur dans les deux champs de texte, mais pas à récupérer la valeur d'un champ de texte. Je pense que j'ai du zappeur quelque chose de très logique, mais bon...
J'ai spécifier dans mon fichier .nib Sent on end editing plutôt que on enter only pour l'envoi de l'action.
Voici mon fichier header :
#import <Cocoa/Cocoa.h>
@interface testAppDelegate : NSObject <NSApplicationDelegate>
@property (assign) IBOutlet NSWindow *window;
- (IBAction)textAConvertir:(NSTextField *)sender; // Champ texte 1, valeur à récupérer
- (IBAction)crypterBouton:(id)sender; // Bouton pour copier texte d'un champ à l'autre
- (IBAction)reinitBouton:(id)sender; // Bouton pour réinitialiser les champs
@property (weak) IBOutlet NSTextField *textConverti; // Champ texte 2, pour réinitialiser
@property (weak) IBOutlet NSTextField *textAConvertir; // Champ texte 1, pour réinitialiser
@end
Et mon fichier .m :
#import "testAppDelegate.h"
@implementation testAppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Insert code here to initialize your application
}
NSString * text2Convert;
- (IBAction)textAConvertir:(NSTextField *)sender { // récupérer valeur du champ texte 1
text2Convert = [sender stringValue];
}
- (IBAction)crypterBouton:(id)sender { // envoyer valeur dans champ texte 2
[_textConverti setStringValue:text2Convert];
}
- (IBAction)reinitBouton:(id)sender { // réinitialise les champs texte
[_textConverti setStringValue:@reinit];
[_textAConvertir setStringValue:@reinit];
text2Convert = @reinit;
}
@end
Merci de votre aide !
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Je ne saisis pas ton problème, puisque tu récupères déjà la valeur des champs avec -stringValue dans ton exemple. Tu disposes aussi de méthodes -floatValue et cie.
En fait j'ai mal précisé mon soucis, désolé...
stringValue ne reçoit rien, là est mon problème ???
Regarde si la variable d'instance correspondant au textfield n'est pas nulle. Mais bon, ça devrait fonctionner.
Bon, j'ai trouvé !
En fait il faut que je récupère la valeur du NSTextField dans le IBAction de mon bouton et non dans celui du NSTextField (je pensais qu'il récupérait la valeur dès qu'une touche était appuyée...)
Donc
Bonjour anka,
Si tu déclares deux propriétés,
@property NSString *textAConvertir;
@property NSString *textConverti;
et que tu les attribues par "binding" à tes deux NSTextField, tu peux te contenter de faire:
A la rigueur, tu peux même te passer du bouton "Convertir", puisque selon le réglage du NSTextField, le texte converti s'affiche quand tu quittes le champ (avec tab ou return) ou même caractère par caractère.