5

Things.appのToDoリストに非常によく似たエントリのリストを使用してCocoaアプリを作成したいと思います(スクリーンキャストを参照)。問題は私が使うべきかどうかです

  1. TableView、
  2. CollectionViewまたは
  3. WebView。

それらすべてで機能すると思いますが、次の要件に最も適しているのはどれですか?

  • エントリのリストがあります->1列と多くの行
  • ドラッグアンドドロップによる並べ替え
  • 単一のエントリを選択し、削除などのアクションにキーを使用します
  • エントリを開きます。行を展開して、より多くの入力フィールドを表示する必要があります
  • カスタマイズされた外観:丸みを帯びた角、影、背景のグラデーション

これまでのところ、TableViewにはほとんどの機能がありますが、外観をカスタマイズするのは難しいとのことですが、CollectionViewにはドラッグアンドドロップがありませんが(右?)、設計は簡単で、WebViewはそうしないとかなりの労力を要します。ユーザーエクスペリエンスを損ない、モデルを入力フィールドに直接バインドできません。

私が見逃している長所と短所は何ですか?また、何を使用することをお勧めしますか?

4

5 に答える 5

4

WebViewは意味がありません。WebViewを使用する場合は、Webアプリケーションを作成することもできます。NSCollectionViewは、1時間あたりのテレビ番組表など、グリッドのようなデータに適しています。

この場合、NSTableViewだけが意味をなします。NSTableViewを使用して、5つの箇条書きすべてを問題なく実装しました。NSTableViewを拡張し、カスタマイズされた外観のためにカスタム描画を行う必要があります。それが最も難しい部分です。

于 2009-08-10T12:56:49.750 に答える
2

すでにこれを行っている人がいます。私がうまく使ったのはMatteoBertozziによるもので、ここから入手できます : http : //th30z.netsons.org/2009/03/cocoa-sidebar-with-badges-take-2/正しく機能するようにしますが(特に複雑なドラッグアンドドロップ動作が必要な場合)、リスト内のセクションタイトルやアイテムの取得などの基本的な機能については、うまく機能します。

編集:これは以前に出てきたもので、cocoa-devメーリングリストでよくある質問です。 他のいくつかのオプションがあります

于 2009-08-10T14:59:35.920 に答える
2
  • エントリを開きます。行を展開して、より多くの入力フィールドを表示する必要があります

アウトラインビューが必要です。テーブルビューはフラットリスト用です。

NSOutlineViewはNSTableViewのサブクラスであるため、すべてのテーブルビュー機能はアウトラインビューでも機能することに注意してください。

于 2009-08-10T13:54:44.913 に答える
1

「どこでもFスクリプト」を使用してThings.app自体を見てみました。

彼らは、凝縮されたToDoアイテムを提示する「DetailTableView」と呼ばれるNSTableViewのサブクラスを使用しました。折りたたまれたToDoアイテムは、「ToDoCell」と呼ばれるカスタムセルを使用して実装されますが、編集時に得られる拡張された外観は興味深いものです。その場合、必要に応じてDetailTableViewのサブビューとして挿入される「ToDoEditView」と呼ばれるカスタムビューがあります。この編集ビューが一時的に正しい場所にサブビューとして追加され、テーブルビューの対応する行が存在している間一時的にサイズ変更されていると思われます。

すべてかなり投機的です..これがどのように行われたかについての詳細を知りたいです。それは素晴らしいUIです。

于 2009-08-11T15:28:15.863 に答える
0

私は自分のアプリでまったく同じ問題に取り組んでいます(Things todoリストに似た1つの大きなリストがあります)。ここでは、テーブルビューが非常に理にかなっていると思います。

秘訣は、ダブルクリックしたときにセル(「行」)を展開することです。これが私がこれまでに成し遂げたすべての進歩についてです。

于 2009-08-10T15:33:22.237 に答える