Это сложнее, чем должно быть, потому что Apple не предоставляет NSProgressIndicatorCell. Хотя табличные и контурные представления поддерживают идею отображения в них пользовательских ячеек, они не настроены так, чтобы легко поддерживать настраиваемые подпредставления.
Итак, уловка заключается в том, как получить полное представление NSProgressIndicator для отображения и анимации в нужном месте окна, без возможности его фактической установки в строке представления таблицы?
Уловка, которую я использовал, заключается в буквальной установке NSProgressIndicator в качестве подпредставления самого контура или табличного представления. Чтобы найти место для добавления подпредставления, чтобы оно выглядело как «в строке», используйте frameOfCellAtColumn: row: метод. Затем вы можете расположить свой индикатор прогресса в этом месте на виде структуры. Когда вы закончите вращать индикатор прогресса, вы, вероятно, больше не хотите его показывать, просто удалите его из суперпредставления и откажитесь от него.
Вы должны убедиться, что на индикаторе прогресса установлены требуемые флаги автоматического изменения размера, чтобы он перемещался в правильном направлении, когда / если размер вашего контурного вида изменяется.
Я уверен, что есть и другие подобные хаки для достижения желаемого конечного результата. Я не думаю, что есть какой-то сверхчистый способ выполнить этот трюк.