9
votes

Charger le fichier RTF ou texte dans UITEXTVIEW iPhone SDK

Bonjour, je me demandais comment devrais-je charger RTF ou fichier texte dans UITEXTVIEW J'utilise plusieurs codes mais ne fonctionnait pas,

NSString* filePath = [[NSBundle mainBundle] pathForResource:@"filename" ofType:@"txt"];
myTextView.text = filePath;


0 commentaires

4 Réponses :


15
votes

Vous pouvez essayer avec ceci:

NSString *myText = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
myTextView.text  = myText;


8 commentaires

Merci ne fonctionne pas, seriez-vous s'il vous plaît voir la poste éditée?


Attendez, quel est votre TextView, quel est votre texte, il semble que votre nom de variable a des problèmes. Pouvez-vous imprimer la nstring après avoir reçu de [nstring stringwithContentsOffle ...] . Je veux voir les résultats là-bas


MyText est 'uitextView' et 'myTextView' est juste un nom, mon fichier est un fichier TXT avec l'encodage UTF8.


Avez-vous fait le NSLog () pour voir ce qui se passe après avoir obtenu le contenu, tout contenu là-bas? Avez-vous essayé de mettre un NSERROR comme une troisième variable comme David a dit


Oui, mais le compilateur me montre un avertissement: transmettre l'argument 1 de 'nslog' de type pointeur incompatible.


Je suis tellement désolé d'avoir oublié de connecter la prise avec Builder Interface Soooo Désolé


@ vodkhang, est-il possible d'attribuer à cette chaîne?


Tout cela est convertit le RTF en texte brut. J'ai essayé cela avec un RTFD et cela ne serait même pas chargé. Ensuite, je suis passée à un RTF et j'ai montré du texte RTF brut au lieu de le formater de manière richet. J'ai donc soumis une autre réponse ci-dessous sur la façon dont je le faisais travailler.



8
votes

Qu'est-ce que vous avez fait jusqu'à présent vous procurera le nom du fichier, vous devez aller un pas plus loin et lire le contenu du fichier dans une nstring, en utilisant quelque chose comme: xxx

qui fonctionnera pour le texte brut (en supposant que votre fichier soit dans le codage UTF8); Vous devrez faire quelque chose dont beaucoup plus cher pour RTF (UitextView ne sait pas comment afficher RTF).


2 commentaires

Merci ne fonctionne pas, seriez-vous s'il vous plaît voir la poste éditée?


Si cela ne fonctionne pas, vous devriez peut-être vérifier le statut d'erreur (au lieu de l'ignorer en passant nil ).



9
votes
myTextView.attributedText =
[   NSAttributedString.alloc
    initWithFileURL:[ NSBundle.mainBundle URLForResource:@"filename" withExtension:@"rtf"  ]
    options:nil
    documentAttributes:nil
    error:nullptr
];

3 commentaires

Formatage légèrement étrange, mais cela fonctionne pour charger un fichier texte riche et définir la propriété attributetTextText d'un uitextview .


Cela fonctionne, mais comme exemple, il favorise les mauvaises pratiques. Utilisation de la syntaxe de points pour appeler ALLOC est au mieux et une mauvaise utilisation de la syntaxe de points au pire. Les conventions d'alignement des paramètres multilignes standard ne sont pas difficiles à lire.


Vaut-il la peine de diminuer ma réputation? Vous dogmatiste.



0
votes
  1. Faites glisser votre contrôle TextView (j'ai dû cliquer sur 3 fois jusqu'à ce qu'il ait dit Nstextview) sur votre fichier Appdelegate.m sous la première ligne @interface . Le mien était @interface Appdelegate () . La raison des trois clics est due par défaut lorsque vous faites glisser un contrôle TextView sur une fenêtre, il crée 3 contrôles et ce n'est que l'intérieur intérieur et intérieur défini sur NStextView. Les autres contrôles traitent du défilement et de la découpage à l'écran. Ensuite, choisissez de créer une prise et nommez-la quelque chose comme txtrich ou ce que vous voulez. Cela a créé cette entrée pour moi dans mon cas: xxx
    1. Trouvez une méthode de classe où vous souhaitez charger le RTFD. J'ai fait mien dans l'appdelegate.m sous ApplicationDidfinishLaunching . À l'intérieur, Collez quelque chose comme ceci: xxx

      Vous vous demandez peut-être que ce MainBundle vient de, et si vous devez le déclarer quelque part. La réponse est non. C'est la magie de Freaking, créée par défaut, tout comme la variable NsnotificationCenterCenter DefaultCenter . Il fait référence à votre propre ensemble d'applications.

      1. Maintenant, utilisez TextEdit pour créer un fichier myrichfile.rtfd. Enregistrez-le dans votre dossier de projet. Faites-le glisser dans la fenêtre de votre projet sous les fichiers de support. Lorsque vous êtes invité, allez avec les valeurs par défaut. Cela en regroupe votre projet dans un dossier Ressources.

0 commentaires