ПРИМЕЧАНИЕ. Ответ Эндрю заставил меня взглянуть еще раз. Эта функция скрыта глубоко в большом приложении, имеющем встроенный таймер. Если этот таймер выключен, я получаю неправильное поведение, описанное здесь. Если таймер включен, все работает как положено. Я не знаю, почему этот таймер взаимодействует с этим табличным представлением, но, как я уже сказал, это большое и сложное приложение.
Я хочу, чтобы пользователь мог выбирать, какие столбцы отображать. Ему будет представлен набор переключателей или флажков, по одному для каждой клавиши в отображаемом объекте. Он может установить или снять флажок, и NSTableView добавит или удалит столбец для этого ключа.
Отображаемый объект является NSDictionary. Ключи словаря неизвестны до времени выполнения, поэтому мне приходится создавать столбцы с идентификаторами во время выполнения... они неизвестны во время компиляции.
Внедрение добавочной функциональности прошло гладко. Я создаю столбец и ячейку заголовка, устанавливая текст ячейки заголовка на некоторое значение. Но удалить не так просто. [myTableView removeTableColumn:col]
удаляет столбец, но не так хорошо работает с заголовком. Иногда текст заголовка не удаляется. Иногда удаляется текст заголовка в двух столбцах. Иногда я получаю две текстовые строки заголовка, напечатанные друг над другом.
Явно что-то упускаю. Как программно удалить столбец и его заголовок?