Highlighting NSView

Bonjour,


 


Question sûrement très bête, mais je me lance :


J'ai une custom NSView qui peut être "selected". J'ai donc overridé acceptsFirstResponder, j'ai définit une propriété isSelected qui est mise à  jour lors de l'appel des méthodes becomeFirstResponder et resignFirstResponder. Ca marche impec. Mon soucis est dans le dessin lui-même. 


 


J'ai tenté ceci :


 


if (_isSelected) {
        //Tracé d'un highlighting
        [[NSGraphicsContext currentContext] saveGraphicsState];
        [[NSColor selectedControlColor] setStroke];
        [NSBezierPath setDefaultLineWidth:3.0];
        [[NSBezierPath bezierPathWithRect:bounds] stroke];
        [[NSGraphicsContext currentContext] restoreGraphicsState];
    }

 


Mais cela ne correspond pas tout-à -fait aux "highlights" des autres vues, comme une tableView. Il semble que ce soit des gradients. J'ai aussi essayé, mais ce pose le problème des jonctions entre les lighnes verticales et horizontales qui ne sont pas correctes...


 


Bref, si quelqu'un sait comment dessiner un highlight qui ressemble 'à  celle des tableView, textField etc... je suis preneur !


 


 


Réponses

  • Ca y est ! j'ai trouvé par hasard dans la doc, à  un endroit qui n'avait rien à  voir.


    Je donne la réponse au cas où :


     
    [NSGraphicsContext saveGraphicsState];
    NSSetFocusRingStyle(NSFocusRingOnly);
    [[NSBezierPath bezierPathWithRect: bounds] fill];
    [NSGraphicsContext restoreGraphicsState];

Connectez-vous ou Inscrivez-vous pour répondre.