Le formattage d'un champ texte en HTML
guyhom
Membre
Salut à tous,
Merci de m'accueillir sur ce forum au chocolat
J'ai une petite question pour une application cocoa qui a bien avancé mais que je dois finaliser.
Je ne parviens pas à trouver un article, un tuto, ou même une aide toute bête sur comment formater un champ texte (NSTextField) pour qu'il interprète le contenu en HTML.
Le NSString contenu contient bien les balises mais je ne sais pas comment dire au controller que son IBOutlet NSTextField doive interpréter le HTML.
S'agit-il d'un autre NSObject que je doive utiliser ?
Merci par avance de votre aide
Merci de m'accueillir sur ce forum au chocolat
J'ai une petite question pour une application cocoa qui a bien avancé mais que je dois finaliser.
Je ne parviens pas à trouver un article, un tuto, ou même une aide toute bête sur comment formater un champ texte (NSTextField) pour qu'il interprète le contenu en HTML.
Le NSString contenu contient bien les balises mais je ne sais pas comment dire au controller que son IBOutlet NSTextField doive interpréter le HTML.
S'agit-il d'un autre NSObject que je doive utiliser ?
Merci par avance de votre aide
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
T'es sûr d'avoir voulu poster cette question dans "Développement iOS SDK (iPhone/iPad)" ?
C'est pas plutôt du développement sur Mac que tu fais?
Sinon pour le formattage HTML, il ne faut pas utiliser UITextField, mais bien UIWebView !
Merci pour ta réponse.
Guillaume
Quand ça m'arrive c'est souvent parce que je m'y suis mal pris: pour les choses simples simples Cocoa offre des solutions simples et on en trouve facilement des exemples.
Si tu regardes la référence de NSTextField
http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSTextField_Class/Reference/Reference.html
Il n'y a rien pour indiquer le texte qu'on veut y mettre. Dans ces cas là le mieux c'est de remonter la hiérarchie La première ligne de la référence, juste à clicquer sur le lien..
http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSControl_Class/Reference/Reference.html#//apple_ref/occ/cl/NSControl
NSControl lui a les méthodes setString et setAttributedString qui permettent de lui injecter du texte sous forme de NSString (ou NSAttributedString et ça marchera aussi avec leurs variantes mutables) setString: ou setAttributedString
Donc si tu veux utiliser un NSTextField il faut lui envoyer une NSString ou, dans ton cas NSAttributedString qui elle dispose de la méthode initWithHTML:documentAttributes:
http://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSAttributedString_AppKitAdditions/Reference/Reference.html#//apple_ref/doc/uid/20000167-BAJBDECE
=> Si tu veux afficher du html dans un NSTextField tu devras passer par une NSAttributedString que tu initieras avec ton html une fois allouée sa mémoire
Un exemple simple qui te permet de retirer le html de ta string
(http://stackoverflow.com/questions/1282862/iphone-string-manipulation)
Une solution plus simple, mais plus gourmande en ressources, est d'utiliser une WebView http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/WebKit/Classes/WebView_Class/Reference/Reference.html
Mais là tu te retrouves avec un objet qui permet même de suivre les liens ou d'interpréter les javascripts qu'il contient.
En passant WebView n'a pas de NS devant, NS est l'acronyme de NextStep, le langage historique à la base de Cocoa inventé du temps où le web n'était pas (encore) ce qu'il est aujourd'hui. http://www.levenez.com/NeXTSTEP/