私はCocoaを初めて使用し、経験豊富なCocoa-ersからのアプリケーションに関するちょっとしたアドバイスを探しています。
オブジェクトがキャンバスに描画/ドラッグされる基本的なOmniGraffleスタイルのアプリを作成しています。オブジェクトをキャンバスに配置した後、オブジェクトを選択して、プロパティ(塗りつぶしの色、線の色/幅など)を変更したり、サイズを変更したり、新しい位置に移動したりできます。
ウォームアップするために、カスタム上でマウスによって描画されるオブジェクト(円、長方形など)を作成しNSView
、オブジェクトをコレクションに追加し、NSArray
コレクションのコンテンツをビューにレンダリングする基本的な描画アプリを作成しました。 。この流れを続けることもできますが、オブジェクト選択の検出、zインデックスの解決、フォーカスの強調表示、ドラッグハンドルなど、関連するすべてのレンダリングのサポートを追加する必要があります。また、各サイクルですべてのオブジェクトをレンダリングすることは、ひどく無駄に思えます。
より良いアプローチは、軽量のビューオブジェクトをキャンバスにドロップして、マウスイベントを検出したり、自分自身とフォーカスリングを描画したりできるようにすることです。しかし、NSView
これらの特性を備えたオブジェクトのように見えますが、それが多くの荷物を伴う重量級のコンポーネントであるということについて、ウェブ上で多くのおしゃべりを目にします。私はNSCell
sに出くわし、それらを読みましたが、それらが正しい選択肢であるかどうかはわかりません。
助言がありますか?あなたが私を正しい方向に動かすことができれば、私はそれを大いに感謝します。