NSTextView contains Graphics ?

04:34 modifié dans API AppKit #1
Hello,

j'ai cherché, en vain, une méthode du genre
BOOL value = [myTextView containsGraphics];

Vous l'avez sûrement compris, je cherche simplement à  savoir si mon TextView contients des images ou non  :-\\

Merci d'avance.
Louka

Réponses

  • BruBru Membre
    04:34 modifié #2
    La seule solution me venant à  l'esprit est de "parser" la mutableString de la textView afin de découvrir la présence d'une insertion d'image (un attribut de type NSAttachmentAttributeName avec comme fichier attaché une image).

    Sans conviction, mais je tenterai bien un truc comme ça :
    <br />{<br />&nbsp; &nbsp; id attach;<br />&nbsp; &nbsp; NSImage *img;<br /><br />&nbsp; &nbsp; // recherche du premier rattachement<br />&nbsp; &nbsp; attach=[[textView textStorage] attribute:@&quot;NSAttachmentAttributeName&quot; atIndex:0 effectiveRange:NULL];<br />&nbsp; &nbsp; if (attach!=nil)<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; // il existe au moins un fichier attaché<br /><br />&nbsp; &nbsp; &nbsp; &nbsp; // on tente de créer une NSImage à  partir du fichier rattaché<br />&nbsp; &nbsp; &nbsp; &nbsp; img=[[NSImage alloc] initWithData:[[attach fileWrapper] regularFileContents]];<br /><br />&nbsp; &nbsp; &nbsp; &nbsp; // l&#39;image est non-nulle : le rattachement est une image.<br />&nbsp; &nbsp; &nbsp; &nbsp; if (img!=nil)<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // c&#39;est une image...<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [img release];<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; else<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // ce n&#39;est pas une image !<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />}<br />
    


    Ce code est loin d'être parfait : il ne teste que la présence que du premier rattachement.
    Par exemple, s'il y a 2 rattachements, et que le premier n'est pas une image, il ne testera pas le second.
    A toi de faire la boucle qui va bien.

    .
  • ChachaChacha Membre
    04:34 modifié #3
    Il y a aussi des methodes comme containsAttachements des extensions de NSAttributedString, mais ça ne répond pas exactement au problème non plus.

    +
    Chacha
  • Eddy58Eddy58 Membre
    04:34 modifié #4
    Peut-être aussi en disséquant le NSData renvoyé par la méthode - (NSData *)RTFDFromRange:(NSRange)aRange ? ???
  • 04:34 modifié #5
    J'aime pas trop la SVT mais je vais quand même tenter  :adios!: Merci pour vos réponses
Connectez-vous ou Inscrivez-vous pour répondre.