Round Rect Button à lier avec une action
infinitesea
Membre
Bonjour,
Je suis débutant et j'aimerai bien créer une application, le monde de l'informatique me passionnant. J'ai déjà lu et suivi plusieurs tutoriels... Mais je rencontre quelques problèmes avec le SDK pour iPhone.
J'arrive à créer l'interface mais une fois créée j'ai un petit problème. En fait j'aimerai bien lier un Round Rect Button avec un message qui apparait de façon aléatoire parmi une liste pré-définie de message.
J'ai déjà essayer de lier l'action TouchUpInside avec le projet, je ne sais pas si c'est ce qu'il faut faire mais en tout cas cela ne marche pas.
Je serai très reconnaissant à la personne qui pourrait m'aider.
Je suis débutant et j'aimerai bien créer une application, le monde de l'informatique me passionnant. J'ai déjà lu et suivi plusieurs tutoriels... Mais je rencontre quelques problèmes avec le SDK pour iPhone.
J'arrive à créer l'interface mais une fois créée j'ai un petit problème. En fait j'aimerai bien lier un Round Rect Button avec un message qui apparait de façon aléatoire parmi une liste pré-définie de message.
J'ai déjà essayer de lier l'action TouchUpInside avec le projet, je ne sais pas si c'est ce qu'il faut faire mais en tout cas cela ne marche pas.
Je serai très reconnaissant à la personne qui pourrait m'aider.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
iPhone Dev Center > iPhone Reference Library > Your First iPhone Application >
Pour t'y rendre prendre le Menu Help > Documentation
Prendre iPhone OS Library puis General
Il sufit alors de dérouler la page
NSArray * messages=[[NSArray alloc] initWithObjects:
@Oh Combien de marins,,@Combien de capitaines,,@Qui sont partis joyeux pour des courses lointaines,,@Dans ce morne horizon se sont évanouis ! ,nil];
[NSArray alloc] alloue la zone mémoire nécessaire au stockage d'objets de type arbitraire.
initWithObjects réalise le stockage des 4 adresses des chaà®nes de caractères dans la zone mémoire allouée précédemment. Les chaà®nes sont-elles crées à un autre endroit de la mémoire.
nil termine la liste. C'est également l'adresse particulière 0x0
random()
tire un nombre au hasard entre 0 et le plus grand int (2 milliards et quelques)
[NSArray objectAtIndex:i]
[NSArray objectAtIndex:0] pointe sur @Oh Combien de marins
[NSArray objectAtIndex:1] pointe sur @Combien de capitaines
[messages count]
C'est le nombre d'éléments dans le tableau
random()%[messages count]
Un nombre entre 0 et [messages count]-1
[myButton setTitle:message forState:UIControlStateNormal];
met le message comme titre du bouton, lorsque celui-ci est en situation normal
Merci beaucoup. Je me suis plongé dans la lecture de ces documents cet après-midi et cela m'a un peu éclairci, donc je vais mettre en pratique.
J'aimerai bien comprendre ce code ce serai sympa que vous m'expliquiez, en fait la je comprends mais comment savoir tel mot va avec tel mot? Et ce code on le place dans quel sous-dossier le .m ou .h?
Et c'est à dire effectuer dans le code un changement? Lequel? Je dois mettre ce changement après chaque phrase aléatoire pré-définie?
Merci beaucoup!
Mettre une IBAction dans le .h du contrôleur
-(IBAction) changeTitle:(id) sender;
Mettre le code ci-dessus dans l'implémentation (dans le .m)
-(IBAction) changeTitle:(id) sender {
}
Dans IB connecter le bouton au contrôleur en choisissant l'action changeTitle.
Qu'est ce que l'implémentation? Sinon je crois avoir compris mais je n'arrive pas à mettre en place c'est à dire qu'en gardant le même exemple des marins je n'arrive pas à mettre en forme, je dois sauter des lignes, qu'est ce qui va avant, je le place où...?
NSArray * messages=[[NSArray alloc] initWithObjects:
@Oh Combien de marins,",@Combien de capitaines,",@Qui sont partis joyeux pour des courses lointaines,,@Dans ce morne horizon se sont évanouis ! ,nil];
Je ne dois rien mettre dans la parenthèse du Random?
Si on prenait juste la première phrase "Oh combien de marins" ça donnerait ceci (le boutton se nommerai red rect)
NSArray * messages=NSArray alloc] initWithObjects:<br /> @"Oh Combien de marins",nil];<br /><br />NSString * message=[NSArray objectAtIndex:[b]0[/b]random()%[messages count;
[myButton RedRect:message forState:UIControlStateNormal];
Merci, j'ai hâte de recevoir votre réponse ::)
Qu'as tu comme expérience à l'heure actuelle ?
L'implémentation c'est les lignes de code qui déterminent ce que fait une méthode, une fonction.
Le C (et donc l'Objective-C) accepte des sauts de ligne n'importe où. DOnc cela n'a pas d'importance.
Tu peux écrire :
ou
Cela n'a d'importance que la qualité de la lecture que tu en fais.
rien, cette fonction n'utilise aucun argument
Non pas vraiment : plutôt sans 0 devant random(), et le nom deu bouton
NSArray * messages=NSArray alloc] initWithObjects:@"Oh Combien de marins",nil];<br />NSString * message=[[s]NSArray[/s] messages objectAtIndex:random()%[messages count;
[RedRect setTitle:message forState:UIControlStateNormal];
Je vais essayer de mettre ça en forme dans la journée et voir ce que ça donne!
... et enlever NSArray de la méthode objectAtIndex: et le remplacer par messages (NSArray est une classe, et objectAtIndex: une méthode d'instance).
Si tu ne connais pas le C, attaque le C parce que les bases en sont nécessaires pour l'Objective-C...
Ensuite, " Cocoa par la pratique " de A. Hillegass.
Une bonne liste se trouve sur le site developpez.com ou le site du zero. Mais il y en a surement ailleurs.
Par contre comme le dit Schlum, pour Objective-C / Cocoa n'hésite pas à acheter le livre de Hillegass (la 3ème édition en Anglais si cela ne te fais pas peur)