couleur du texte d'un textview

chaps31chaps31 Membre
07:38 modifié dans API AppKit #1
Deuxième message du jour...  :P

Un truc qui m'énerve depuis pas mal de temps et que je ne comprends pas : j'ai un textview dans un scrollview le tout à  coté de nstextfield dans un nspanel façon "hud".

Tous mes nstextfield on un texte réglé en blanc, pas de pb, je fais pareil avec le textview et... le texte reste obstinément noir !!! C'est à  devenir fou...  :crackboom:-

Réponses

  • chaps31chaps31 Membre
    07:38 modifié #2
    AAAARGGGHH.... Pardon pour ce cri... Rien à  voir avec la question ci-dessus si ce n'est l'incompréhension totale et que ça concerne IB.

    Je bidouillais un truc sous IB, et là  mon doigt ripe sur le trackpad de mon macbook pro unibody (pas pratique parfois...) et depuis... plus d'ascenceur pour parcourir ma tableview !!! J'ai vérifié pourtant les régalges du scrollview sont bon il doit les afficher !!!

    Pour info j'ai une tabview qui contient mon scrollview qui contient ma tableview... Une idée de ce qui a pu se passer ??? Tout marche mais plus d'ascenceur je ne peux plus parcourir ma table !!!

    SOS
  • Philippe49Philippe49 Membre
    07:38 modifié #3
    Dans l'inspecteur de IB (Scroll View) tu as la possibilité de mettre/ ne pas mettre les ascenseurs "Show horizontal Scroller"
  • Philippe49Philippe49 Membre
    07:38 modifié #4
    dans 1231350307:

    Deuxième message du jour...  :P

    Un truc qui m'énerve depuis pas mal de temps et que je ne comprends pas : j'ai un textview dans un scrollview le tout à  coté de nstextfield dans un nspanel façon "hud".

    Tous mes nstextfield on un texte réglé en blanc, pas de pb, je fais pareil avec le textview et... le texte reste obstinément noir !!! C'est à  devenir fou...  :crackboom:-

    Et en réglant le "Draw Background" du scroll view ?
  • chaps31chaps31 Membre
    07:38 modifié #5
    dans 1231352071:

    Dans l'inspecteur de IB (Scroll View) tu as la possibilité de mettre/ ne pas mettre les ascenseurs "Show horizontal Scroller"


    C'est coché... Idem pour le drawbackground de mon autre pb... C'est la misère...
  • CéroceCéroce Membre, Modérateur
    07:38 modifié #6
    Le texte d'un NSTextField est maintenu dans une NSAttributedString.
    Celui d'une NSTextView dans un NSTextContainer (au format RTF).

    Tu peux changer la couleur du texte d'une NSTextView en passant par le panneau des fontes (menu Font > Show Fonts).
  • chaps31chaps31 Membre
    janvier 2009 modifié #7
    Bigre.... Et dire que je venais de trouver la raison d'un bug perfide pour butter sur ces deux problèmes surréalistes :

    - J'ai essayé d'utiliser le menu Font, dans la fenêtre la couleur était à  jaune... Mais le texte de la textView apparaissait noir... Donc j'ai eu comme un doute de l'utilité de la manip... J'ai néanmoins mis blanc, ça n'a rien fait, ha si maintenant je ne peux plus rien taper, mon textview est devenu non sélectionnable...  B) Pour la couleur dans l'inspecteur je peux changer la couleur mais hop en effet elle revient toute seule à  son réglage initial... (noir)

    - Pour mon ripage de doigt... Incompréhensible, si ça se trouve mon ripage n'a rien à  voir, ma bidouille oui. Je voulais modifier dans xcode le label d'un des "onglets" de la tabview, donc je venais de créer un IBOutlet tabView relié dans IB avec la tabView en question (mon dérapage de doigt et de clic..). Mais ne trouvant pas comment faire et face au pb de la disparition des ascenceurs j'ai viré le lien et l'Outlet de Xcode, rien n'y fait pour le scrollview il est bien coché d'afficher les ascenceurs mais ceux-ci n'apparaissent plus...

    IB est ensorcellé ou je deviens stupide ???  B)

    Merci... SOS  :why?: :why?: :crackboom:- :crackboom:-
  • Philippe49Philippe49 Membre
    07:38 modifié #8
    Tu peux envoyer ton nib ?
  • chaps31chaps31 Membre
    07:38 modifié #9
    Merci beaucoup de prendre le temps de te pencher dessus c'est la fenêtre avec la tableview pour le pb des ascenceurs et la fenêtre HUD textview "Message" pour le texte qui reste noir

    http://chaps31.free.fr/MainMenu.nib.zip
  • chaps31chaps31 Membre
    07:38 modifié #10
    Incompréhensible l'ascenseur est revenu.... Par contre mon problème de couleur de texte perdure ... SOS...
  • Philippe49Philippe49 Membre
    janvier 2009 modifié #11
    Je me demande si "ton coup de trackpad" n'a pas tout simplement réduit la zone de texte à  NSZeroRect : .

    [EDIT] oui j'arrive à  faire fonctionner ton HUD après avoir redimensionné le text view "Commentaires"
  • chaps31chaps31 Membre
    07:38 modifié #12
    dans 1231516109:

    Je me demande si "ton coup de trackpad" n'a pas tout simplement réduit la zone de texte à  NSZeroRect : .


    0ù ça se trouve NSZeroRect ?

    dans 1231516109:
    [EDIT] oui j'arrive à  faire fonctionner ton HUD après avoir redimensionné le text view "Commentaires"


    Exact... phénomène lié au NSZeroRect ? Car pour moi là  ça relève de la magie... Merci d'avoir réslu ce bug. o:)


    Par contre aujourd'hui je compile et.... à  nouveau les ascenceurs ont disparu du scrollview contenant la tableview... L'autre jour ils y étaient... 
    Ils n'y sont plus puis ils y sont puis ils n'y sont plus... Et je ne change rien au NIB ....  Mon macbook est ensorcelé ??? Une explication ? Là  c'est surréaliste...  :why?:
  • Philippe49Philippe49 Membre
    07:38 modifié #13
    dans 1231671677:

    0ù ça se trouve NSZeroRect ?
    ... Exact... phénomène lié au NSZeroRect ? Car pour moi là  ça relève de la magie... Merci d'avoir réslu ce bug. o:)

    NSZeroRect c'est le rect d'origine nulle et de dimensions nulles. Cela permet d'initialiser certains rectangles. C'était donc une manière de dire que tu avais réduit les dimensions de ton rectangle de TextView à  zéro, ce qui l'empêchait de réagir aux sollicitations de l'utilisateur.

    dans 1231671677:

    Par contre aujourd'hui je compile et.... à  nouveau les ascenceurs ont disparu du scrollview contenant la tableview... L'autre jour ils y étaient... 

    Dans certains réglages, les ascenseurs ne sont présents que si cela est nécessaire, lorsque le texte ne peut être représenté en totalité dans la partie visible.
  • chaps31chaps31 Membre
    07:38 modifié #14
    Le problème c'est que pour moi c'est l'option "Automatically Hide Scroller" du scrollview qui gère le masquage et dans mon cas elle n'est pas cochée... Mais de toute façon la iste de ma tableview dépasse la taille du scrollview donc théoriquement même coché je devrais avoir les ascenceurs...  :crackboom:-

    Sinon je traine toujours le problème du texte noir du textview que je n'arrive pas à  passer en blanc... :crackboom:-
  • Philippe49Philippe49 Membre
    07:38 modifié #15
    Je serais toi , plutôt que de chercher où a été fait une erreur de manip qui doit sans doute être casse-tête du style du NSZeroRect, je recommencerais la partie défectueuse du nib (ce qui permettrais par ailleurs de la passer en fichier xib)
  • chaps31chaps31 Membre
    07:38 modifié #16
    Reconstruire mon tableview.... pfff... ok, mais j'aurais aimé éviter  :P

    Sinon pour la couleur du texte dans le texview c'est étrange car la couleur du point d'insertio si je la change se modifie sans problème...

    Au passage dans un nstextfield il y a un moyen de changer la couleur du point d'insertion ?
  • Philippe49Philippe49 Membre
    07:38 modifié #17
    Cursor Management

    Autrement regarde si il y a quelque chose dans le code de TextEdit, il est fourni dans les exemples Developer
  • chaps31chaps31 Membre
    07:38 modifié #18
    J'aurais aimé comprendre pourquoi ce scrollview ne scroll pas ... Bigre
  • Philippe49Philippe49 Membre
    07:38 modifié #19
    Il est où exactement dans ton nib ce scroll view ? ce n'est pas celui des commentaires du HUD ?
  • chaps31chaps31 Membre
    07:38 modifié #20
    Celui de la fenêtre principale, avec nom adresse...

    NB : pourquoi XIB plutôt que NIB ?
  • Philippe49Philippe49 Membre
    07:38 modifié #21
    dans 1231675889:

    NB : pourquoi XIB plutôt que NIB ?

    Depuis quelque temps, XCode propose un MainMenu.xib , qu'il compile ensuite en un fichier .nib qu'il place dans les ressources du projet. Je suppose que ton projet date un peu et que tu utilises un ancien fichier .nib, qui normalement doit fonctionner aussi, mais bon, c'est un ancien mode de fonctionnement.
  • Philippe49Philippe49 Membre
    07:38 modifié #22
    En copiant-collant dans un nouveau xib, j'ai dans les infos des warnings, pas méchants en apparence mais essaie de redimensionner les table view
  • chaps31chaps31 Membre
    07:38 modifié #23
    Bon ben  :

    - Pour la couleur du texte dans le textview seule solution qui fonctionne :  j'ai rajouté dans l'awakefromNib de ma classe qui gère mon interface :
    [monTextView setTextColor:[NSColor whiteColor]];
    
    Ca marche très bien, mais il y a définitivement un problème dans IB, si un codeur d'Apple masqué (Schlum ? Philippe49 ? AliGator ?    :P  ) passe ici il peut y jeter un oeil .

    - Pour le scrollview : aucune solution j'ai regardé partout, ça semble un bug d'IB, 1 semaine que je reste bloqué là ... C'est la misère je vais me mettre à  WinDev.... Non.. je déconne  B)
  • chaps31chaps31 Membre
    janvier 2009 modifié #24
    Malheureusement ces warning ne me disent rien... C'est incroyable, personne n'a jamais rencontré ce problème, parce-que si avec les flèches du clavier je descend les autres lignes de la tableview (qui ne sont donc pas accessibles visuellement dans le scrollview) elles sont bien là  je peux les passer les unes après les autres....

    Maudit ScrollView mon projet est à  l'arrêt... Décidemment IB me pose bien des problèmes de fonctionnement, car comme je le disais j'ai résolu le pb de la couleur du texte dans le textview mais via xcode, la sélection de couleurs dans IB ne fonctionnant pas...

    Mais revenons à  mon problème de scrollview... une idée ? n'importe quoi un truc que je sorte de cette impasse ....

    [glow=red,2,300]EDIT :[/glow] J'ai sélectionné le scroll vertical et ai coché la case pour l'obliger à  s'afficher (enabled) il s'affiche je peux cliquer sur les flèches mais il ne défile pas !!!!!!!!!!!!!!!!   :crackboom:- :crackboom:-
  • Philippe49Philippe49 Membre
    janvier 2009 modifié #25
    Je viens de tester , et j'arrive comme toi à  une incompréhension. Le scroll view semble déconnecté de la table view ... N'ayant jamais rencontré ce problème, je n'avais pas imaginé que cela soit possible, et je n'avais pas du tout cherché dans ce sens ...

    Quelqu'un te comprends enfin  :brule:
  • Philippe49Philippe49 Membre
    07:38 modifié #26
    Bon, j'arrive à  une solution partielle :
    - (void)tableView:(NSTableView *)aTableView setObjectValue:(id)anObject forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex{
    [aTableView reloadData];
    }

    et l'ascenseur devient efficace.
    Il s'agit donc d'un problème de lecture du nombre de rows dans la data source.
    Il doit falloir mettre l'initialisation de l'array de la data source relativement tôt dans le programme. (je l'aimis pour ma part dans awakeFromNib
  • Philippe49Philippe49 Membre
    janvier 2009 modifié #27
    Voilà , si je mets l'initialisation de l'array du data source dans init au lieu de awakeFromNib, ça roule.

    Mes excuses de ne pas avoir localisé ton problème plus tôt (hier j'avais la tête dans des problèmes de localisation d'un robot) .

    [EDIT] je regarde pour le problème du text view, bien que ta solution soit satisfaisante.
    ce qu'IB ne sait pas faire, on le fait dans le code ...
  • Philippe49Philippe49 Membre
    07:38 modifié #28
    Une autre solution pour le text view, c'est de mettre dans IB un texte dans ton Text View que tu règles avec le menu Font. Cela fixe les attributs standards du texte par la suite.
  • chaps31chaps31 Membre
    07:38 modifié #29
    Philippe49 je vais créer une église à  ton nom, ou au choix t'envoyer une caisse de chateau Margaux chaque année à  vie  o:)   o:)   Merci  :p :p
    Te connaissant un peu j'ai une idée sur ton choix...

    Problème résolu en mettant reloadData dans le awakefromnib... C'est quand même étrange non ? Problème à  creuser...

    Sinon initialisation du tableau dans init.. Tu mettrais un bout de code stp ;)  En fait dans pas mal d'exemple je vois implémenté la méthode init dans les projet, chose que je ne fais jamais et dont je ne comprend pas l'utilité... ni le [super init] que je lis systématiquement, je sens une histoire de surcharge, notion que je n'ai jamais abordée.
  • Philippe49Philippe49 Membre
    07:38 modifié #30
    dans 1231758730:

    Philippe49 je vais créer une église à  ton nom, ou au choix t'envoyer une caisse de chateau Margaux chaque année à  vie  o:)   o:)   Merci  :p :p
    Te connaissant un peu j'ai une idée sur ton choix...

    Le cumul n'étant pas interdit ..

    dans 1231758730:

    Problème résolu en mettant reloadData dans le awakefromnib... C'est quand même étrange non ? Problème à  creuser...

    L'ordre dans lequel les méthodes sont appelées au lancement intervient lors de l'initialisation.
    En mettant reloadData dans awakeFromNib, tu prends la main en forçant un nouveau rafraà®chissement complet de la table view. L'initialisation de la MSMutableArray dans la méthode init est antérieure à  tous les appels awakeFromNib, et donc la table view possède surement toutes les informations de son data source au moment où elle le questionne.   

    dans 1231758730:

    Sinon initialisation du tableau dans init.. Tu mettrais un bout de code stp ;)  En fait dans pas mal d'exemple je vois implémenté la méthode init dans les projet, chose que je ne fais jamais et dont je ne comprend pas l'utilité...

    -(id) init {
    if(self=[super init]) {
    NSDictionary * un=[NSDictionary dictionaryWithObjectsAndKeys:@Albert,@prenom,@Einstein,@nom,nil];
    NSDictionary * deux=[NSDictionary dictionaryWithObjectsAndKeys:@Jean-Nepomucène,@prenom,@Lemercier,@nom,nil];
    NSDictionary * trois=[NSDictionary dictionaryWithObjectsAndKeys:@Jean-Nepomucène,@prenom,@Lemercier,@nom,nil];
    clients=[[NSMutableArray alloc] initWithObjects:un,deux,trois,nil];
    }
    return self;
    }

    dans 1231758730:

    ni le [super init] que je lis systématiquement

    Si ta classe hérite d'une autre classe, elle hérite en même temps des variables (et méthodes) de cette classe.
    [super init] fait exécuter la méthode  init de la classe-mère, et ainsi fait profiter des initialisations standards ou simples créations qu'elle contient. 
Connectez-vous ou Inscrivez-vous pour répondre.