comment dois-je prendre la valeur de texte NSButton, par exemple si j'utilise 2 boutons avec le texte Click and Cancel, je veux vérifier quel bouton est cliqué puis montrer un message avec NSRunAlertPanel (...) sur quel bouton j'ai cliqué .. code dois-je écrire pour quand le bouton est cliqué.Comment prendre la valeur de texte de NSButton?
Répondre
Dans votre méthode d'action, vous obtenez un argument, généralement appelé 'expéditeur', qui est le bouton. Ainsi, vous pouvez faire quelque chose comme:
- (IBAction)buttonClicked:(id)sender
{
if ([[sender title] isEqualToString:@"Click"]) {
NSLog(@"Click clicked.");
} else if ([[sender title] isEqualToString:@"Cancel"]) {
NSLog(@"Cancel clicked.");
}
}
Il est préférable de ne pas utiliser le titre pour le contrôle du bouton, car le titre pourrait changer dans différentes localisations. Vous pouvez spécifier le tag
à la place, qui est simplement un int et qui peut être utilisé pour identifier différents expéditeurs.
La façon dont cela est généralement mis en œuvre est que chaque bouton appelle une action différente, il n'y aurait donc pas besoin de vérifier le texte du bouton. Voir The Target-Action Mechanism.
En général, il est presque toujours une mauvaise idée d'utiliser le texte visible de l'utilisateur pour contrôler la logique du programme car cela rend la localisation plus difficile.
Vous pourriez également décrire votre situation plus en détail. Utilisez-vous Interface Builder pour créer votre interface? Ces boutons sont-ils dans une boîte de dialogue modale ou une fenêtre de document?
D'accord, je comprends votre point de vue. J'essayais juste d'essayer si je pouvais le faire, avec un dialogue modal, oui j'ai utilisé le constructeur d'interface. merci pour le pointeur .. :) – maddy
Vous pouvez attribuer un nom au bouton dans l'onglet Informations sur la classe de la fenêtre Inspecteur d'Interface Builder, puis le déclarer comme un IBOutlet dans votre délégué d'application.
AppDelegate.h:
IBOutlet NSButton *ClickButton;
IBOutlet NSButton *CancelButton;
Accrocher ensuite la sortie dans Interface Builder, et il suffit de cocher pour voir quel bouton est l'expéditeur dans votre méthode:
- (IBAction)buttonClicked:(id)sender
{
if (sender == ClickButton) {
NSLog(@"Click clicked.");
}
else {
NSLog(@"Cancel clicked.");
}
}
- 1. Comment ne prendre que la première ligne du texte multiligne
- 2. CSS: comment empêcher le texte de prendre plus d'une ligne?
- 3. zones de texte avec la valeur
- 4. obtenir la valeur de la zone de texte de php
- 5. Comment prendre la valeur précédente lors de la régénération d'une servlet
- 6. Comment lire la zone de texte. Valeur de texte d'un autre thread dans WPF?
- 7. Comment prendre une valeur cliquez sur gridview sans js?
- 8. C# valeur de la zone de texte sous 2 formes
- 9. Ajouter un à la valeur d'un champ de texte
- 10. Comment imprimer une valeur dans la zone de texte à partir du fichier texte?
- 11. Comment multiplier et définir la valeur de multiplier sur la zone de texte en utilisant JavaScript
- 12. Comment obtenir la valeur de l'éditeur WMD?
- 13. Comment obtenir la valeur numérique de Enum?
- 14. Comment extraire la valeur de texte d'un index de zone de liste en C#
- 15. Rapports d'aspect - comment s'y prendre? (Configuration de la fenêtre D3D)
- 16. Comment prendre le contrôle de la construction d'un WebService
- 17. Comment obtenir le texte d'un bouton radio (pas la valeur)
- 18. C# Valeur arrondie d'une zone de texte
- 19. Quelle est la valeur SystemColors de la bordure de la zone de texte?
- 20. Nécessité de prendre deux valeurs de champ de texte et ajouter ainsi à un autre champ
- 21. comment modifier la valeur dans la zone de texte à la date actuelle en fonction de la valeur sélectionnée dans la zone de liste déroulante dans javascript
- 22. Changement de texte de la boîte de texte
- 23. Zone de texte Valeur non enregistrée
- 24. Comment faire pour que la valeur de l'attribut de texte en sortie soit un lien hypertexte?
- 25. Comment modifier le nom de la valeur supérieure dans une zone de texte d'un rapport Cognos?
- 26. Comment passer la valeur d'une zone de texte dans une grille de données à javascript
- 27. Comment affecter la valeur de textbox à une autre zone de texte en html?
- 28. définir la valeur dynamique et le texte de la boîte de sélection
- 29. Réinitialiser la valeur de la zone de texte sous forme Infopath chaque fois qu'elle est ouverte?
- 30. Comment obtenir la valeur de la colonne dynamiquement ajoutée de datagridview au moment de la publication
merci, il m'a aidé. Je vais essayer de vérifier avec le tag aussi. – maddy