2009-09-29 4 views
0

En un mot, je ne veux pas de texte brut, ni même de texte enrichi. Je veux charger un document XML, qui a des métadonnées pour les sections de texte, et je veux afficher ces métadonnées dans un tiroir lorsque je clique sur une section de texte donnée. Un lien hypertexte est un bon exemple. évidemment trivial à faire dans une application web, mais même si je ne suis pas très expérimenté avec mac dev, je n'arrive pas à trouver un moyen facile d'y parvenir avec du cacao.Cocoa: Création d'une vue de texte personnalisée

Des suggestions quant à la stratégie générale? Il ne semble pas y avoir de vue HTML intégrée au constructeur de l'interface, ou bien je risquerais de le faire.

Répondre

2

Je ne suis pas tout à fait clair sur ce que vous essayez de faire. Il sonne comme si vous vouliez charger un document XML, afficher le texte et afficher diverses métadonnées lorsque certains bits de texte sont sélectionnés.

Si c'est le cas, vous devriez lire à propos du Cocoa Text System. La classe NSTextStorage est une sous-classe de NSMutableAttributedString et vous pouvez appliquer des attributs arbitraires à n'importe quelle plage de texte. Lorsque la sélection change, vous pouvez obtenir les attributs dans la plage sélectionnée et l'utiliser pour mettre à jour votre tiroir. (En passant, les tiroirs sont vraiment en train de disparaître.Je suggérerais une interface utilisateur différente.Les interfaces NSSplitView -basées sont beaucoup plus en vogue ces jours.)

Bien sûr, pour construire le NSTextStorage, vous ' d besoin d'analyser le XML avec NSXMLDocument ou NSXMLParser, mais vous auriez beaucoup plus de contrôle et cela ressemblerait plus à "Cocoa-like".

Vous pouvez utiliser un WebView, qui est le moteur de rendu Safari, mais je pense que vous auriez du mal à le faire afficher le texte comme vous le souhaitez. Safari n'a jamais été parfait pour rendre XML sans XSLT.

Questions connexes