2010-07-28 2 views
1

J'ai un UIView rempli de boutons qui sont tous bien connectés aux actions et aux prises. Cependant, dans ma sagesse infinie, j'ai décidé que je préférerais vraiment que le comportement du bouton soit différent et sous-classe un UIControl.Forcer Interface Builder à modifier la classe d'objets (UIButton-> UIControl)

Mon plan était de sauter dans Interface Builder, changer la classe des boutons pour ma nouvelle sous-classe UIControl, puis être opérationnel. Cela permettrait de préserver toutes les connexions de sortie et d'action.

Dans IB (View Identity Inspector) lorsque je tape ma sous-classe UIControl dans le champ de classe, il revient à UIButton lorsque je tabule. Toute sous-classe UIButton fonctionne, mais pas un UIControl. Je peux descendre l'arbre d'héritage mais pas vers le haut ....

Le premier plan était d'aller à XCode et changer la superclasse de mon nouveau contrôle temporairement à UIButton, changer la «classe» de mes boutons IB, et puis remplacez la superclasse du code XCode par UIControl. IB a accepté et changé la classe, mais l'exécution de l'application me donne des boutons non visibles. L'inspecteur IB Attributes l'affiche toujours sous la forme d'un bouton.

La création du contrôle à partir de zéro et le recâblage fonctionne, mais j'espérais ne pas recâbler tous les boutons si cela pouvait être évité. (Ceci est un changement que j'espérais réussir à traverser plusieurs applications, donc c'est un peu plus douloureux que ça sonne.)

Quelqu'un sait-il cela?

merci beaucoup!

+0

oublié mes bases. Cela se passe sur XCode/IB 3.2.3 merci! – Oldmicah

Répondre

0

Je suis en retard d'un an, mais peut-être que cela aidera quelqu'un à l'avenir. Peut-être pourriez-vous ouvrir le fichier .xib dans un éditeur de texte et déterminer quel texte vous devriez changer pour le faire fonctionner (essayez-le d'abord sur un exemple de projet), puis utilisez find et replace pour les corriger tous en même temps.

Questions connexes