Frage

Ich möchte eine Cocoa -App mit einer Liste von Einträgen erstellen, die der Todo -Liste der Dinge sehr ähnlich sind.Siehe den Screencast). Die Frage ist, ob ich verwenden soll

  1. eine Tabellenansicht,
  2. eine Sammlungansicht oder
  3. ein Webview.

Ich denke, es könnte mit allen funktionieren, aber welches passt zu den folgenden Anforderungen?

  • Haben Sie eine Liste von Einträgen -> 1 Spalte und viele Zeilen
  • Neuordnung mit Drag & Drop
  • Wählen Sie einzelne Einträge aus und verwenden Sie Schlüssel für Aktionen wie Löschen
  • Öffnen Sie einen Eintrag: Die Zeile sollte erweitert werden, um mehr Eingabefelder anzuzeigen
  • Anpassungsübergreifender Look: Abgerundete Ecken, Schatten, Hintergrundgradienten

Bisher besagt meine Forschung, dass die Tabellenansicht den größten Teil der Funktionalität hat, aber es ist schwieriger, sich in ihrem Erscheinungsbild anzupassen, das CollectionView hat keine Drag & Drop (richtig?), Ist aber einfach zu entwerfen, und das Webview würde viel Anstrengung unternommen, um nicht Verletzen Sie die Benutzererfahrung und ich kann mein Modell nicht direkt an Eingabefelder binden.

Welche Vor- und Nachteile fehlen ich und was würden Sie empfehlen?

War es hilfreich?

Lösung

Ein Webview macht keinen Sinn. Sie können genauso gut eine Webanwendung erstellen, wenn Sie eine WebView verwenden. Ein NSCollectionView ist mehr für gitterähnliche Daten wie TV -Angebote pro Stunde.

NstableView ist das einzige, das in diesem Fall Sinn macht. Ich habe alle 5 Aufzählungszeichen mit einem NstableView ohne Probleme implementiert. Sie müssen NstableView erweitern und benutzerdefinierte Zeichnung für den individuellen Look durchführen. Das ist der schwierigste Teil.

Andere Tipps

  • Öffnen Sie einen Eintrag: Die Zeile sollte erweitert werden, um mehr Eingabefelder anzuzeigen

Du brauchst eine Gliederungsansicht. Eine Tabellenansicht ist für flache Listen.

Beachten Sie, dass NSoutlineView eine Unterklasse von NstableView ist. Alle Tabellenansicht-Funktionen funktionieren auch nach einer Gliederungsansicht.

Es gibt Leute, die das schon getan haben. Eine, die ich erfolgreich verwendet habe, ist von Matteo Bertozzi und ist hier erhältlich: http://th30z.netsons.org/2009/03/cocoa-sidebar-with-badges-take-2/ Es könnte a dauern bisschen von Massagen, damit es richtig funktioniert (insbesondere wenn Sie ein komplexes Drag-and-Drop-Verhalten benötigen), aber für grundlegende Funktionen, z. B. die Abschnittstitel und Elemente in der Liste, funktioniert es hervorragend.

Bearbeiten: Das hat Komm schon und ist eine häufige Frage auf der Kakao-Dev-E-Mail-Liste. Hier sind einige andere Optionen.

Wirten Sie sich gerade die Dinge an.

Sie haben eine Unterklasse von NstableView namens "DetailTableView" verwendet, in der die kondensierten Todoelemente vorgestellt werden. Zusammengestürzte TODO -Elemente werden mit einer benutzerdefinierten Zelle namens "Todocell" implementiert, aber das erweiterte Look, den Sie bei der Bearbeitung erhalten, ist interessant. In diesem Fall haben sie eine benutzerdefinierte Ansicht namens "todoeditview", die bei Bedarf als Unteransicht der DetailTableView eingefügt wird. Ich vermute, dass diese Bearbeitungsansicht vorübergehend als Unteransicht am richtigen Ort hinzugefügt wird und die entsprechende Zeile der Tabelleansicht vorübergehend geändert wird, während sie vorhanden ist.

Alles ziemlich spekulativ. Ich würde gerne die Details darüber wissen, wie dies gemacht wurde. Es ist eine großartige Benutzeroberfläche.

Ich nähere mich dem gleichen Problem in meiner App (mit einer großen Liste ähnlich der Dinge, die TODO -Liste ähnelt), und ich denke, eine Tabellenansicht würde hier viel Sinn ergeben.

Der Trick besteht darin, dass sich Ihre Zellen ("Zeilen") beim Doppelklick ausdehnen. Das ist ungefähr all die Fortschritte, die ich bisher gemacht habe.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top