Я работаю в Mac OS X 10.6 (Snow Leopard) и против нее. Когда я дважды щелкаю между двумя заголовками столбцов моего NSTableView, размер столбца слева автоматически изменяется, как и следовало ожидать.
Я хочу также указать это в контекстном меню, но, похоже, для этого нет общедоступной функции. Я гуглил и посмотрел документацию по NSTableView, NSTableHeaderView и NSTableColumn, но ничего не нашел. Мне трудно поверить, что они не раскрыли бы что-то настолько полезное, когда у них, очевидно, был написан код для этого.
Я видел -[NSTableColumn sizeToFit]
метод, но он учитывает только размер заголовка. Я также согласился бы отправить событие двойного щелчка в NSTableHeaderView, но также не мог понять, как это сделать.
Обновление - я понял, что важно упомянуть, что у меня есть NSArrayController (подкласс), предоставляющий данные для моей таблицы, поэтому у меня нет NSTableViewDataSource
, для которого я мог бы вызвать -[tableView: objectValueForTableColumn: row:]
. В этом суть проблемы: каждый столбец привязан к ключевому пути контроллера массива, и именно так он получает свои данные, поэтому он не может циклически просматривать его содержимое.