2010-07-19 3 views
0

J'ai un NSComboBox et je me demandais s'il y avait un moyen facile de le convertir en un NSTextField ordinaire? Considérant que NSCombBox est une sous-classe de NSTextField, je pense qu'il y a un moyen facile de l'activer/désactiver, mais je ne peux pas le comprendre.Conversion d'un NSComboBox et NSTextField facilement

Répondre

0

Ce sont deux contrôles distincts. Vous devrez juste en échanger un pour l'autre. Si vous cherchez à le faire dans Interface Builder au moment de la conception, c'est simple et stupide. Si vous cherchez à faire cela dans le code, ce n'est pas trop difficile (surtout si vous avez déjà les deux contrôles créés et configurés quelque part dans votre XIB, comme une vue hors écran).

Il peut être utile de décrire ce que vous essayez d'accomplir (c'est-à-dire, pourquoi vous voulez échanger les contrôles). Il est difficile de donner une réponse succincte sans plus d'informations sur vos objectifs.

+0

J'avais des données qui pourraient être sous la forme d'un tableau ou d'une chaîne, donc j'ai dû déterminer si je devais créer un NSTextField ou un NSComboBox. Par défaut, mon IBOutlet était un NSTextField. Fondamentalement, j'ai dû vérifier mon objet de données que j'ai utilisé pour définir le champ isKindOfClass: [classe NSString]. Si c'était un NSString, définissez les données. Sinon, copiez les limites de NSTextField et tous les autres paramètres importants, supprimez de NSTextField de superview, initialisez un NSComboBox, définissez les paramètres (que nous avons copiés de NSTextField), définissez les données et définissez la cible et les actions. – mac2017

+0

Pourquoi ne peut-il pas toujours être représenté comme un tableau de chaînes, même s'il n'y a qu'une seule chaîne? Je suis sûr que ce n'est pas trop difficile d'empêcher le menu d'apparaître dans ce cas. Avez-vous considéré quelque chose comme ça? –

Questions connexes