Ceci est une question très large/vague, mais voilà. Excuses d'avance. L'application (application de bureau) que je suis en train de construire prend différents types d'entrées pour générer un code QR (je ne fais que le construire pour apprendre Obj-C/Cocoa). L'utilisateur peut basculer entre différentes vues qui permettent d'entrer du texte brut (champ de texte unique), des données VCard/MeCard (plusieurs champs de texte) et d'autres choses. Peu importe l'entrée, le résultat est un code QR. Pour garder les choses contenues, je voudrais utiliser les vues en tant que contrôleurs de vue, afin qu'elles gèrent leurs propres entrées, et peuvent simplement "envoyer" un objet générique "données à encoder" contenant toutes les données à un encodeur central. C'est à dire. la vue en texte brut ferait un objet de données avec le texte de son champ de texte, tandis que la vue VCard/MeCard utiliserait tous ses champs pour créer des données VCard/MeCard structurées.Besoin de quelques conseils concernant les modèles Cocoa MVC/KVO
Je peux lier tous ces éléments manuellement dans le code, mais j'aimerais vraiment savoir comment les bindings/KVO pourraient m'aider. Hélas, après avoir lu les docs de développeur d'Apple, et les tutoriels/exemples plus simples que j'ai pu trouver, je ne sais toujours pas comment l'appliquer à mon application.
Par exemple: L'utilisateur édite les champs de texte dans la vue VCard. Le contrôleur de vue VCard est averti de chaque mise à jour et "recalcule" l'objet de données. Le contrôleur de codeur central est ensuite informé de l'objet de données mis à jour et code les données. Le but de tout ceci, est que les vues d'entrée peuvent être créées complètement indépendamment, et peuvent contenir toutes sortes de champs d'entrée. Ils gèrent ensuite leurs propres entrées et "retournent" un objet de données générique, que le codeur peut utiliser. En interne, les vues observent leurs entrées pour mettre à jour l'objet de données et, en externe, l'encodeur n'a besoin que d'observer l'objet de données. Le problème est que je n'ai aucune idée de comment tout cela se produirait et le garder découplé. Devrait-il y avoir un contrôleur d'objet entre la vue d'entrée et ses champs? Devrait-il en avoir un autre entre la vue et l'encodeur? De quoi ai-je besoin où? Si quelqu'un a un lien vers un bon tutoriel, merci de le partager.
Encore une fois, je peux rouler mon propre système de notifications et de code de colle, mais je pense que le but est d'éviter cela.
Très bien - merci! Il y a certainement quelque chose que je peux faire mes dents là-dedans. – Flambino