Question

Je veux construire une application Cocoa avec une liste d'entrées très similaire à la liste de ToDo de Things.app ( voir screencast). La question est de savoir si je devrais utiliser

  1. un TableView,
  2. un CollectionView ou
  3. une WebView.

Je pense qu'il pourrait travailler avec tous, mais celui qui convient le mieux aux exigences suivantes?

  • une liste des entrées -> 1 colonne et plusieurs lignes
  • réordonner par glisser-déposer
  • sélectionner des entrées simples et utiliser les touches pour des actions telles que supprimer
  • ouvrir une entrée: la ligne devrait élargir pour afficher plusieurs champs d'entrée
  • look personnalisé: coins arrondis, ombre, fond dégradé

Jusqu'à présent, mes recherches dit que le TableView a la plupart des fonctionnalités, mais est plus difficile à personnaliser dans son apparence, la CollectionView ne pas glisser-déposer (à droite?) Mais il est facile de concevoir et WebView prendrait beaucoup effort pour ne pas nuire à l'expérience utilisateur et je ne peux pas lier mon modèle directement aux champs de saisie.

Quels avantages et les inconvénients que je suis absent et que recommanderiez-vous à utiliser?

Était-ce utile?

La solution

A WebView n'a pas de sens. Vous pourriez aussi bien créer une application Web si vous utilisez un WebView. Un NSCollectionView est plus pour la grille comme les données, comme les programmes TV par heure.

NSTableView est le seul qui est logique dans ce cas. J'ai mis tous les 5 points de balle avec avec un NSTableView sans problème. Vous devez étendre NSTableView et faire un dessin personnalisé pour le look personnalisé. C'est le plus dur.

Autres conseils

  
      
  • ouvrir une entrée: la ligne devrait élargir pour afficher plusieurs champs d'entrée
  •   

Vous avez besoin d'un . Une vue de la table est pour les listes plats.

Notez que NSOutlineView est une sous-classe de NSTableView, de sorte que toutes les fonctionnalités de table vue travailler sur une vue générale aussi bien.

Il y a des gens qui ont déjà fait cela. Une que je l'ai utilisé avec succès par Matteo est Bertozzi et est disponible ici: http://th30z.netsons.org/2009/03/cocoa-sidebar-with-badges-take-2/ Il pourrait prendre un bits de massage à le faire fonctionner correctement (surtout si vous avez besoin du glisser-déposer complexe), mais pour les fonctionnalités de base, telles que l'obtention des titres de section et des articles dans la liste, cela fonctionne très bien.

Edit: Cela a venir avant et est une question commune sur la liste de courrier électronique cacao-dev. Voici quelques autres options .

Juste a pris un regard sur lui-même en utilisant Things.app "script F anywhere".

Ils ont utilisé une sous-classe de NSTableView appelé « DetailTableView » qui présente les éléments TODO condensés. Collapsed TODOs sont mis en œuvre en utilisant une cellule personnalisée appelée « ToDoCell », mais le regard élargi que vous obtenez lors de l'édition est intéressante. Dans ce cas, ils ont une vue personnalisée appelée « ToDoEditView » qui est inséré en tant que sous-vue du DetailTableView lorsque cela est nécessaire. Je soupçonne que ce point de vue de l'édition est temporairement ajoutée en tant que sous-vue dans l'emplacement correct et la ligne correspondante du tableview se redimensionnée temporairement pendant qu'il est présent.

Tous assez spéculatif .. J'aimerais connaître les détails de la façon dont cela a été fait. Il est une interface utilisateur impressionnante.

J'aborde le même problème dans mon application (avec une grande liste semblable à la liste des choses todo) et je pense une vue de la table ferait beaucoup de sens ici.

L'astuce est d'avoir vos cellules ( « lignes ») augmente quand un double-clic. C'est à peu près tous les progrès que je l'ai fait jusqu'à présent.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top