Boutons de préférences comme iPhone ou TimeMachine

CapripotCapripot Membre
mars 2008 modifié dans API AppKit #1
Bonjour
Savez-vous où je pourrais trouver cet objet qui est le bouton de préférence d'activation ou non de TimeMachine par exemple, qui ressemble aux boutons de préférence de l'iPhone. Je ne le trouve pas dans les objets d'un projet Cocoa dans Xcode 3.
Time1.jpg

Merci pour vos réponses

Réponses

  • AliGatorAliGator Membre, Modérateur
    16:33 modifié #2
    Ce bouton n'existe pas "en standard". Autrement dit, Apple l'a créé de toutes pièces pour son usage perso dans Time Machine.

    Si tu veux le recréer, il faudra soit réécrire son code (somme toutes pas bien méchant à  part éventuellement la partie animation mais bon) soit attendre quelques mois ou années qu'Apple décide de le rajouter à  la palette dans InterfaceBuilder.

    Cependant la question avait déjà  été posée ici et tu y trouveras un élément de réponse déjà  :)
  • AntilogAntilog Membre
    16:33 modifié #3
    [size=12pt]Non, pitié![/size]
    :o
    [size=6pt]Pas cet énorme mocheté de bouton dans d'autres applications![/size]
  • schlumschlum Membre
    16:33 modifié #4
    dans 1205741575:

    [size=12pt]Non, pitié![/size]
    :o
    [size=6pt]Pas cet énorme mocheté de bouton dans d'autres applications![/size]


    +1  :o
  • CapripotCapripot Membre
    16:33 modifié #5
    OK
    la question avait déjà  été posée, j'ai donc dû mal rechercher alors, parce que j'ai cherché..

    donc si il faut le recréer, ce n'est alors pas possible de le faire avec une application Apple Script Studio, si?

    sinon, pour info, ce n'est pas une application destinée à  être cliquée par un curseur de souris  ... ;)
  • hdexhdex Membre
    16:33 modifié #6
    dans 1205741575:

    [size=12pt]Non, pitié![/size]
    :o
    [size=6pt]Pas cet énorme mocheté de bouton dans d'autres applications![/size]


    Figurez-vous que le bouton de Time Machine n'est pas moche, Il n'a pas un physique facile ... c'est different.
    Bon OK, en oubliant la reference a 2 balles au "Pere Noel est une ordure" je le trouve sympa ce bouton mais un peu gros dans time machine.

    La raison pour laquelle j'avais pose la question initale c'est que je voulait un bouton qui indique clairement si une option est active ou pas. La checkbox le fait bien aussi, mais je trouve cela plus clair ... bon ok ok c'est aussi tres mode  >:D

    Perso, pour l'instant je reste avec mes check box car il semble que mes utilisateurs (en particulier les recents switchers) comprennent mieux. Les utilisateurs d'iphone et habitues du mac preferent en general le "slider" ... peut etre dans une prochaine version ...
  • AliGatorAliGator Membre, Modérateur
    16:33 modifié #7
    dans 1205796369:
    Perso, pour l'instant je reste avec mes check box car il semble que mes utilisateurs (en particulier les recents switchers) comprennent mieux. Les utilisateurs d'iphone et habitues du mac preferent en general le "slider" ... peut etre dans une prochaine version ...
    T'as qu'à  mettre un réglage dans tes préférences pour permettre à  l'utilisateur d'indiquer s'il préfère les checkboxes ou le bouton-slider, non ?.... réglage  qui sera du genre "utiliser les boutons glissants au lieu des cases à  cocher" avec en face un bouton slider pour activer ou dés... ah non, du coup plutôt une checkbo... ah ben non heu ... arg :)
  • AntilogAntilog Membre
    16:33 modifié #8
    dans 1205798002:

    dans 1205796369:
    Perso, pour l'instant je reste avec mes check box car il semble que mes utilisateurs (en particulier les recents switchers) comprennent mieux. Les utilisateurs d'iphone et habitues du mac preferent en general le "slider" ... peut etre dans une prochaine version ...
    T'as qu'à  mettre un réglage dans tes préférences pour permettre à  l'utilisateur d'indiquer s'il préfère les checkboxes ou le bouton-slider, non ?.... réglage  qui sera du genre "utiliser les boutons glissants au lieu des cases à  cocher" avec en face un bouton slider pour activer ou dés... ah non, du coup plutôt une checkbo... ah ben non heu ... arg :)

    Ou bien les deux, un click sur le checkbox change le ... l'interrupteur, un click sur l'interrupteur change le slider, comme ça tout le monde est content (et on n'y comprends plus rien, et on brûle tous les exemplaires de Apple Human Interface Guidelines que l'on trouve encore, s'il en reste...)

    :kicking: :brule: :brule: :kicking:
  • CapripotCapripot Membre
    mars 2008 modifié #9
    certe..encore faudrait-il savoir le faire ce bouton... :P
    je suis débutant (je sais que les débutants sont énervants à  rien comprendre et à  rien savoir faire...) donc si vous pouviez m'expliquer ce serait super sympa :)
  • AntilogAntilog Membre
    16:33 modifié #10
    En fait, le Calvabutton (abus de pomme) de Philippe49 doit pouvoir se faire en grande partie avec Interface Builder:
    image et alternateImage peuvent être gérées directement par lui.

    Après, rien ne t'empêche de faire un dessin plus jouli que le sien  :o

  • CapripotCapripot Membre
    16:33 modifié #11
    Salut
    merci de m'avoir mis sur la voie Antilog

    voici l'appli avec le boutton
    donc forcément, il ne fait pas de transition "coulissante" (slide)
    une idée pour implémenter cela ? ce serait plus joli !
    sinon je n'arrive pas à  mettre un background ... une idée ?

    merci beaucoup pour votre aide !
  • AntilogAntilog Membre
    16:33 modifié #12
    Ben le problème avec les boutons, c'est qu'ils n'ont que deux états (On et Off).

    Pour faire une animation, je pense qu'il faut créér une vue personnelle, et donc tout refaire: gestion du click, des éventuels raccourcis-clavier, animation, ...
  • schlumschlum Membre
    16:33 modifié #13
    dans 1205936796:

    Ben le problème avec les boutons, c'est qu'ils n'ont que deux états (On et Off).

    Pour faire une animation, je pense qu'il faut créér une vue personnelle, et donc tout refaire: gestion du click, des éventuels raccourcis-clavier, animation, ...


    Non, suffit de surclasser NSButtonCell, y a juste le "dessin" de l'animation à  refaire  ;)
  • CapripotCapripot Membre
    16:33 modifié #14
    Est ce qu'on fait comme ça pour changer certaines propriétés de la class ???
    http://bbs.applescript.net/viewtopic.php?pid=31930#p31930
  • CapripotCapripot Membre
    16:33 modifié #15
    Est ce qu'il faut surclasser NSButton ou NSButtonCell ?
    Je tatonne un peu là , pourriez-vous me mettre sur la voie ?  ???
    Merci beaucoup d'avance !  :why?:
  • CapripotCapripot Membre
    16:33 modifié #18
    Bonsoir
    Merci pour ces liens

    Je suis un très grand débutant en Cocoa (la preuve je voulais passer par AppleScript  :P)
    J'ai essayé de surclasser NSButton
    et pas NSButtonCell comme me l'indique la doc Apple :
    the implementation of the NSButton method invokes the corresponding NSButtonCell method for you, allowing you to be unconcerned with the existence of the NSButtonCell

    donc jai écrit ça
    en m'inspirant du code que j'ai trouvé un peu partout sur la toile, mais je pense que ce n'est pas bon ...
    @implementation CustomHandleButton<br />- (void) setAlternateImage:(NSImage *) anImage{<br />	[NSImage imageNamed: @&quot;iphoneswithc_off.png&quot;];<br />}<br />- (void) setImage:(NSImage *) anImage{<br />	[NSImage imageNamed: @&quot;iphoneswithc_on.png&quot;];<br />}<br /><br />@end<br />
    

    Mes images sont dans Ressources, puis-je vraiment y accéder comme ceci ?
    Est ce que j'oublie quelque chose ?
    Evidemment, dans IB j'ai changer la class de NSButton par CustomHandleButton
    J'ai aussi essayé de sous-classer NSButtonCell, et de choisir CustomHandleButton dans IB, mais rien y fait, ça ne fonctionne pas non plus.
    Je suis désolé pour mon ignorance, pouvez-vous m'aider un peu ?
  • Philippe49Philippe49 Membre
    16:33 modifié #19
    dans 1207084150:

    donc jai écrit ça
    en m'inspirant du code que j'ai trouvé un peu partout sur la toile, mais je pense que ce n'est pas bon ...
    @implementation CustomHandleButton<br />- (void) setAlternateImage:(NSImage *) anImage{<br />	[NSImage imageNamed: @&quot;iphoneswithc_off.png&quot;];<br />}<br />- (void) setImage:(NSImage *) anImage{<br />	[NSImage imageNamed: @&quot;iphoneswithc_on.png&quot;];<br />}<br /><br />@end<br />
    


    L'extension n'est pas nécessaire.
    Lors de l'exécution, il est demandé à  ton bouton de fournir l'image à  représenter.
    Cette demande se fait par l'envoi d'un message : [monBouton alternateImage]
    La méthode setAlternateImage  demande au bouton de stocker une image donnée.
    Tout ce mécanisme étant déjà  en place, il suffit de faire :

    @implementation CustomHandleButton
    - (void) awakeFromNib
    {
    [self setAlternateImage:[NSImage imageNamed: @iphoneswithc_off]];
    [self setImage:[NSImage imageNamed: @iphoneswithc_on]];
    }

  • Philippe49Philippe49 Membre
    avril 2008 modifié #20
    Compléments :

    Le post précédent est énoncé dans l'hypothèse où ton bouton existe dans l'interface, la classe ayant été réglée dans l'inspecteur à  CustomHandleButton (vérifier si cela est accepté) 


    Si maintenant tu crées ton bouton dans le programme, tu peux programmer ainsi dans une méthode initialisante :
      #import "CustomHandleButton."
      ....
      NSRect myRectangle=NSMakeRect( ....
      CustomHandleButton * myButton=[[CustomHandleButton alloc] initWithFrame: myRectangle];
      [myButton setAlternateImage: ...
      [myButton setImage: ....
  • CapripotCapripot Membre
    16:33 modifié #21
    oui il est défini dans IB
    merci beaucoup pour cette aide précieuse
Connectez-vous ou Inscrivez-vous pour répondre.