注:アンドリューの応答により、私はさらに別の見方をするようになりました。この機能は、内部タイマーを備えた大規模なアプリケーションの奥深くに埋め込まれています。そのタイマーがオフの場合、ここで説明されている間違った動作が発生します。タイマーがオンになっている場合は、期待どおりに機能します。そのタイマーがこのテーブルビューと相互作用する理由はわかりませんが、私が言ったように、それは大きくて複雑なアプリです。
ユーザーが表示する列を選択できるようにしたいと思います。表示されているオブジェクトのキーごとに1つずつ、一連のラジオボタンまたはチェックボックスが表示されます。彼はチェックボックスをオンまたはオフにすることができ、NSTableViewはそのキーの列を追加または削除します。
表示されているオブジェクトはNSDictionaryです。辞書のキーは実行時までわからないので、実行時に識別子を使用して列を作成する必要があります...コンパイル時にはわかりません。
追加機能の実装はスムーズに進みました。列とヘッダーセルを作成し、ヘッダーセルのテキストをある値に設定します。しかし、削除はそれほど簡単ではありません。 [myTableView removeTableColumn:col]
列を削除しますが、ヘッダーをうまく処理しません。ヘッダーテキストが削除されない場合があります。2列のヘッダーテキストが削除されることがあります。時々、2つのヘッダーテキスト文字列が互いに重なり合って印刷されることになります。
明らかに私は何かが欠けています。プログラムで列とそのヘッダーを削除するにはどうすればよいですか?