J'ai créé un champ de texte avec un générateur d'interface. Comment puis-je obtenir son texte à utiliser ailleurs?
Y a-t-il quelque chose comme:
string text = myTextField.Text;
Si oui, comment puis-je nommer mon champ de texte?
La première chose à faire est donc de créer une propriété dans le fichier .h des fichiers de contrôleur de vue associés à votre fichier xib, comme suit:
@property (strong, nonatomic) IBOutlet UILabel *aLabel;
Ensuite, dans le fichier .m, vous devez le synthétiser comme suit:
@synthesize aLabel;
Dans votre tag d'implémentation.
Maintenant, dans le contrôle du générateur d'interface, cliquez à l'endroit où il est indiqué "Propriétaire du fichier" sur le côté gauche de l'écran dans Xcode 4.3, maintenez enfoncé, faites glisser le curseur sur l'étiquette et relâchez le bouton. Ensuite, dans la fenêtre contextuelle, sélectionnez le nom de la propriété que vous avez créée. Maintenant, dans la méthode viewDidLoad de votre contrôleur de vue, vous pouvez obtenir votre valeur comme suit:
self.alabel.text
Comme Greg Price l'a mentionné, pour obtenir un nom pour votre champ de texte, vous devez créer un point de vente . Allez dans votre fichier ViewController.h et créez une propriété pour votre champ de texte:
@interface YourViewController: UIViewController
@property (nonatomic, retain) IBOutlet UITextField myTextField
@end
Avec le mot clé IBOutlet
, vous indiquez à Interface Builder qu’il existe un point de vente permettant de se connecter à cette propriété. D'autre part, vous utiliserez le mot clé IBAction
pour connecter des méthodes aux objets.
N'oubliez pas de synthétiser votre propriété, directement sous votre implémentation, le compilateur vous créera un setter et un getter standard:
@synthesize myTextField;
Ensuite, allez dans le générateur d’interface et cliquez avec le bouton droit de la souris sur File's Owner
, puis faites glisser une ligne de myTextField vers TextField dans la vue.
Vous pouvez maintenant accéder à la propriété text dans votre code:
NSString *string = self.myTextField.text;
Vous aurez d’abord besoin d’une propriété @ appelée myTextField.
Après cela, vous pouvez obtenir le texte du champ de texte myTextField.text
. Pour plus d'informations, consultez la référence de classe UITextField
Peut-être souhaitez-vous l'obtenir pendant que l'utilisateur tape. Si oui, vous pouvez jeter un oeil à UITextFieldDelegate
-
Edit: un lien intéressant à consulter si vous êtes un étudiant Objective C, vous pouvez en apprendre plus à: exemples UITextFields
Meilleures salutations.
Il existe également un didacticiel Nice réalisé par Apple qui couvre la même chose, ainsi que quelques autres sujets iOS débutants: Votre première application iOS
Il est très simple de faire glisser un champ de texte de la zone de vue vers votre scénarimage. Activez ensuite l’éditeur assistant pour pouvoir afficher à la fois la fenêtre de code et le storyboard. Ensuite, appuyez sur le bouton de commande et faites glisser le champ de texte de votre storyboard vers la fenêtre de code.
//created a string variable
var name: String = ""
//our label to display input
@IBOutlet weak var labelName: UILabel!
//this is the text field we created
@IBOutlet weak var textFieldName: UITextField!
@IBAction func buttonClick(sender: UIButton) {
//getting input from Text Field
name = textFieldName.text!
}