0

ユーザーがさまざまな位置に短い文字列を入力できる「キャンバス」ビューがあります。エントリまたは編集に NSTextField を使用しますが、編集されていないときは、テキストはビューの draw メソッドで描画されます。

現在、入力または編集が必要な場合は常に新しい NSTextField を作成し、保持しないため、サブビューとして削除されると、おそらく割り当てが解除されます。

これは問題なく動作し、タイピングはプロセッサよりも遅く、明らかな遅延はありません。

最近、プログラムの別の部分から「編集の終了」メソッドに移動する必要があることがわかりました。そのため、送信者は必ずしも NStextField ではありません。この目的で使用されるテキスト フィールドのプロパティを追加し、特定の編集タスクが終了したときに nil に設定しました。これはまだうまくいくようです。

原則として、常に新しいものを作成するのではなく、単に単一の NSTextField を保持し、スーパービューに追加または削除する方が望ましいでしょうか?

後で追加: 単一の NSTextField を使用して、必要に応じてスーパービューに出し入れすることにしました。これは私には「よりクリーン」に思えますが、賛否両論の意見にまだ興味があります。

4

1 に答える 1

0

あなたの決断はおそらく最も賢明でした。1 つのテキストフィールドを使用するだけで十分です。それが解放されると仮定しているので、メモリに保持され、ある時点であらゆる種類のメモリを消費すると思います。

于 2013-01-22T04:23:13.533 に答える