2010-05-19 6 views
2

Je voudrais avoir un sélecteur personnalisable où de nombreuses fonctionnalités peuvent être personnalisées. Une chose que je ne peux pas comprendre est de changer le texte du bouton d'annulation. J'ai trouvé que la méthode setPrompt va changer le texte du bouton okay mais je ne peux trouver aucune méthode similaire pour le bouton d'annulation, y at-il une telle méthode?Modifier le texte du bouton d'annulation d'un NSOpenPanel (Cocoa OSX)

Répondre

4

Il n'y a pas une méthode intégrée pour, mais vous pouvez essayer itérer les sous-vues de vue du contenu du panneau et la recherche du bouton dont l'action est cancel:, et appelant setTitle: à ce sujet.

Mise à jour: Il existe également une méthode privée _setCancelButtonTitle:.

(De plus, ces deux seront probablement briser dans une application sandbox.)

+1

Genre de gnarley mais ça marche, merci! Vous devez réellement regarder les sous-vues des vues de la vue de contenu pour trouver les boutons, mais bien sûr cela a fonctionné. – Mike2012

+0

Seriez-vous en mesure de partager du code - "itérer à travers les sous-vues de la vue de contenu du panneau". J'ai essayé et ça ne réussit pas. Je prends des sous-vues [[panel contentView]] - mais il semble n'avoir aucun contenu. J'ai créé un panneau via [NSOpenPanel openPanel] et ensuite j'utilise [panel beginWithCOmpletionHandler ...] - Je me demande si la hiérarchie de vue n'a pas été chargée au point où je suis en train de parcourir les sous-vues. J'essaye de changer le keyEquivalent sur le bouton OK. –

1

La setPrompt: méthode NSSavePanel (super classe de NSOpenPanel) fera le travail pour vous.

Questions connexes