4

バックグラウンド:

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

トリッキーなビューのスワッピングのほとんどを把握し、機能させました。スクロール時にビューが完全に切り取られている場合、そのビューは未使用のビューのプールに追加されます。同様に、表示されていないビューが表示可能領域に入ると、未使用のプールからビューを取得しようとします。使用可能なビューがない場合は、ビュー プロトタイプを保持する nib から新しいビューを作成します。

似たような解決策が存在しますが、私はいじくり回すのが好きで、自分で実装することを楽しんでいます :) . ただし、この問題を処理する解決策がわからないので、アドバイスが必要です!

問題:

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

助けてくれてありがとう!

4

1 に答える 1

2

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

于 2011-06-26T04:06:16.187 に答える