Connaà®tre l'objet qui a le focus

sisopetronsisopetron Membre
mars 2012 modifié dans API AppKit #1
Bonjour,



Je n'arrive pas à  trouver des infos intéressantes et compréhensibles sur ce simple problème :



J'ai dans une fenêtre 14 NSTextField. J'ai aussi dans unNSPanel unABPeoplePicker. Je voudrais que les infos de la personne que je sélectionne se placent dans le NSTextField qui a le focus. Comment dois-je m'y prendre ?



Merci à  vous.



Didier

Réponses

  • HerveHerve Membre
    Je m'essaie à  quelques pistes :



    Pourquoi tel ou tel NSTextFild a le focus? On clique dessus?



    Dans Interface Builder, il y a dans les menus des composants "nextKeyView" : le composant destinataire aura le focus en appuyant sur TAB.

    Il y a plusieurs méthodes concernant le focus dans la classe NSView.
  • L'objet qui a le focus est le "first responder" que l'on peut retrouver avec la méthode firstResponder de NSWindow.
  • sisopetronsisopetron Membre
    mars 2012 modifié #4
    Je cherche à  faire un truc comme ça, mais ça coince !


    [[window firstResponder] setStringValue:lastName];
    




    Un petit coup de main ?
  • 'd!d!er' a écrit:


    Je cherche à  faire un truc comme ça, mais ça coince !


    [[window firstResponder] setStringValue:lastName];
    





    ça coince ou ?
  • sisopetronsisopetron Membre
    mars 2012 modifié #6
    J'ai un warning : 'NSResponder' may not respond to 'setStringValue' et évidemment rien ne s'affiche dans mon TextField.



    Et dans la console, j'ai : -[NSTextView setStringValue:]: unrecognized selector sent to instance 0x400d3a2e0
  • mpergandmpergand Membre
    mars 2012 modifié #7
    Ok ! firstResponder retourne le fieldEditor qui est un NSTextView.



    essaye:
    <br />
    [color=#0000ff]id[/color] firstResponder=[window firstResponder];<br />
    <br />
    [color=#0000ff]if[/color]([firstResponder isKindOfClass:[NSTextView class]])<br />
    [firstResponder setString:[color=#891315]lastName[/color]];<br />
    
  • sisopetronsisopetron Membre
    mars 2012 modifié #8
    Ah, merci mpergand, tu me sauves !



    Bon w-e,



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