2011-06-26 9 views
4

背景:NSScrollViewでビューのスワッピング/再利用を処理するインテリジェントな方法はありますか?

私は、Interface Builderでビューをレイアウトすることができるという観点でのUITableViewの使いやすさを提供していますココア/ Objective-CでビューベースのNSTableView風のコントロールを構築していますNSCellをサブクラス化しようとするのではなく、そのリソースでもスマートで、UITableViewのような再利用可能な同様のセルパラダイムを採用しています。これは、もちろん、すべてNSScrollViewの内部で行われます。

わかりやすく、わかりやすいスワップの大部分がわかりました。スクロールすると、ビューが完全にクリップされると、ビューは未使用ビューのプールに追加されます。同様に、表示されていないビューが可視領域に入った場合は、未使用プールからビューを取得しようとします。使用可能なビューがない場合は、ビュープロトタイプを保持するペンから新しいビューを作成します。

そこには同様のソリューションが存在しますが、私は周りの微妙な点を気に入っていて、それを自分で実装して楽しんでいます:)。しかし、私はこの問題を処理する解決策を知らないし、いくつかのアドバイスが必要です!

問題:

言ってやるが、例えば、各ビューは、テキストフィールドが含まれていること。テキストフィールドが編集中で、ユーザーがスクロールを開始した場合、そのセルがプールに解放されないようにして、フォーカスが失われないようにするか、または新たに表示されたビューに「フォーカスを合わせる」リリースされたものを再利用します。カスタムビューを作成したプログラマがイベントを傍受し、そのようにマークする必要なく、ビューを編集中であるとマークするインテリジェントな方法はありますか?

ありがとうございました!

+0

これは素晴らしい質問です。私はこれが多くの人々のために非常に有用なものであると想像することができるので、あなたはそれがすべて働いたときにチュートリアルまたはいくつかのコードを載せることを検討してください! –

答えて

2

ビューコントローラは、NSEditorRegistration非公式プロトコルに準拠することができます。この問題を正確に処理するように設計されています。

+0

ありがとう、それはそれを行う必要があり、きれいな方法のようです! – cky880

関連する問題