Comment puis-je créer Cacao interfaces sans Interface Builder?
Je préfère créer mes interfaces en programmant. Me semble que si tous les docs sur l'Apple Developer supposons que vous êtes en utilisant l'Interface Builder. Est-il possible de créer ces interfaces par programmation, et si oui, où dois-je commencer à apprendre sur la façon de le faire
Je pensais que le document pertinent pour ce, si possible, serait dans cette section: http://developer.apple.com/referencelibrary/Cocoa/idxUserExperience-date.html
- "Je préfère créer mes interfaces en programmant" +1 pour ce faire, vous rock.
Vous devez vous connecter pour publier un commentaire.
Pourquoi? Interface Builder est plus facile et plus rapide. Vous ne pouvez pas écrire une faute de frappe par glisser-déposer, et vous n'obtenez pas ces oh-so-pratique de l'Aqua guides lorsque vous êtes en train de saisir des rectangles à la main.
Ne pas lutter contre elle. Interface Builder est votre ami. Laisser vous aider.
Si vous insister de perdre votre temps et d'énergie de la rédaction de votre INTERFACE utilisateur dans le code:
Pas basés sur des documents (généralement bibliothèque de base, comme le Mail, iTunes, iPhoto): Créer une sous-classe NSObject, instancier et d'en faire la demande à son délégué, et le délégué du
applicationDidFinishLaunching:
méthode, créer une fenêtre, de le remplir avec des points de vue, et de l'ordre de l'avant.Basés sur des documents (comme TextEdit, Aperçu, de QuickTime Player): Dans le
makeWindowControllers
méthode dans votre sous-classe de NSDocument, créer votre windows (et les remplir avec des points de vue) et de créer une fenêtre de contrôleurs pour eux, faire en sorte d'envoyer vous-mêmeaddWindowController:
pour chaque fenêtre contrôleur.J'aime la question, et j'aimerais aussi savoir de ressources pour aller de l'IB-moins. De l'utilité (le "pourquoi") est limitée que par l'imagination. Sur le dessus de ma tête, voici quelques raisons possibles du programme de l'Isu explicitement:
Il y a une série de billets de blog sur de travail sans une plume et une description récente de Michael Mucha sur le cacao-dev.
Complètement aveugle développeur, je peux dire que l'IB n'est pas compatible avec VoiceOver (le haut-lecteur d'écran sous mac OS X).
Cela signifie que, sans accès à la solide documentation sur l'utilisation de Cacao sans IB je ne peux pas développer des applications pour OS X /iPhone dans le Cacao, ce qui signifie que j' (ironiquement) ne peut pas développer facilement des applications qui sont accessibles aux aveugles (et tous les autres) sur OS X /iOS.
Ma solution actuelle, que je préfère ne pas utiliser, est Java + SWT, bien sûr, cela fonctionne pour OS X, pas tellement pour iOS.
En fait de l'IB devient totalement inutiles lorsque vous commencez à écrire vos propres classes de l'INTERFACE utilisateur. Disons que vous créer votre propre bouton qui utilisent une peau système basé sur un fichier plist. Ou vous créer une dynamique de la barre d'outils de charger et décharger les éléments de base de la sélection de l'utilisateur.
IB n'accepte pas les éléments d'INTERFACE utilisateur personnalisés, de manière plus complexe de l'INTERFACE utilisateur ne peut pas l'utiliser. Et OUI, vous voulez faire des choses plus complexes que la UIKit vous donne.
Bien que cela se calme un peu vieux...
J'ai essayé plusieurs fois de le faire tout seul avec de la programmation. C'est difficile, mais possible.
Mise à jour:
J'ai posté une autre question pour ce problème spécifique: Selon la vue NSOutlineView sans PLUME?, et maintenant
Je crois que tout peut être fait de manière programmatique, mais c'est incroyablement dur sans la consultation d'Apple ingénieurs en raison du manque des informations ou des exemples.
Ci-dessous argument pourrait être hors-sujet, mais je tiens à noter pourquoi je préfère par programmation façon.
Je préfère aussi par programme. Parce que
Bien sûr, ces étoffes peuvent être résolus par le post-traitement PLUME de l'INTERFACE utilisateur, mais si nous avons de tout configurer nouveau, il n'y a pas de raison d'utiliser de l'IB au premier abord.
Avec le texte du code, il est facile de reproduire le même état, il suffit de copier le code. Aussi facile à inspecter et à la fixation de mal partie - parce que nous avons le plein contrôle. Mais de l'IB, nous n'avons aucun contrôle sur le noyau dur de détails.
De l'IB ne peut pas être la solution ultime. C'est comme un Photoshop, mais même Photoshop propose de texte à base de script. GUI est un déplacement de programme, et non pas une image statique ou graphique. Un IB approche est complètement faux, même pour l'édition visuelle de l'interface graphique. Si vous êtes l'une des Apple des gens de cette lecture, je vous prie de supprimer toute dépendance à l'IB complètement dès que possible.