Mac用USBデバイス-96 USB DesimpのUI設計を始める [Mac用USBデバイス工作]
前回まででCocoaバインディングのざっくりとした技術的なバックグラウンドのおさらいをした。概念的にはわかったということにして、Cocoaバインディングがどういう場面で使えるかを見るためにUSB DesimpのUser Interfaceを具体的に設計してみる。
Stringデスクリプタは、0番目の言語を指定する以外は、右側のビューに文字列を追加すれば作られてStringデスクリプタだけを明示的に作れるようにはしないでおく。Stringデスクリプタ0に言語を追加すると文字列もその数だけ入力要求するようにする。また、自動的に決まるデスクリプタの長さや例えばInterfaceが持っているEndpointの数なんかはもちろん自動的に埋まって、ユーザには書き換えられないようにする。
書類のセーブは、
まあこんなもんだろ。ここまでやれば普通はCore Dataを一緒に使う方が簡単だろう。でも、Core Dataはいかにもデータベースという感じで、普段Cなんかを使っているプログラマにとってはかなり大味。Core Dataにマッチしたデータ構造なら非常に簡単でUI設計まで自動化できる。データが最終的にテーブルかテーブルのツリーとして表現できるような、例えばよくある組織と所属社員のデータのようなものだったら簡単なんだけど、ちょっと違うこと、例えばなんだろ、社員の趣味の内容を保持するような場合(結局一人々々別々の属性を用意するか、単なる文字列にするしかない)は一気に面倒になる。
5.2 USB DesimpのUI設計
イメージとしてはマスタ・ディテール型のI/O KitでいじったIORegistryExplorerのような感じにしよう。 左にデスクリプタが並んで、そのひとつをセレクトすると右にその内容が表示されて、編集ができる。デスクリプタは入れ子関係があるので表示はNSOutlineViewを使うのがいいだろう。右のディテールはデスクリプタごとにビューペインを作って、NSTabViewに表示させるか。Interface Builderで部品を並べた感じが図-8。 最初は最低限必要なデスクリプタがあってデフォルトの値が入っているとしよう。必要最低限とは- Device
- Configurationひとつ
- Interfaceひとつ
- Endpointひとつ
- Stringの0番目
Stringデスクリプタは、0番目の言語を指定する以外は、右側のビューに文字列を追加すれば作られてStringデスクリプタだけを明示的に作れるようにはしないでおく。Stringデスクリプタ0に言語を追加すると文字列もその数だけ入力要求するようにする。また、自動的に決まるデスクリプタの長さや例えばInterfaceが持っているEndpointの数なんかはもちろん自動的に埋まって、ユーザには書き換えられないようにする。
書類のセーブは、
- 構造そのものを保存
- ソースファイルを保存
まあこんなもんだろ。ここまでやれば普通はCore Dataを一緒に使う方が簡単だろう。でも、Core Dataはいかにもデータベースという感じで、普段Cなんかを使っているプログラマにとってはかなり大味。Core Dataにマッチしたデータ構造なら非常に簡単でUI設計まで自動化できる。データが最終的にテーブルかテーブルのツリーとして表現できるような、例えばよくある組織と所属社員のデータのようなものだったら簡単なんだけど、ちょっと違うこと、例えばなんだろ、社員の趣味の内容を保持するような場合(結局一人々々別々の属性を用意するか、単なる文字列にするしかない)は一気に面倒になる。
2010-04-26 21:57
nice!(0)
コメント(0)
トラックバック(0)
コメント 0