Начальная настройка NSTableView на основе другой таблицы - PullRequest
1 голос
/ 12 мая 2011

Кажется, это должно быть так просто, но я в тупике.У меня есть представление с двумя таблицами.Вторая таблица заполнена информацией, основанной на выборе первой таблицы.Вторая таблица должна изменить количество видимых столбцов на основе выбора в первой таблице.

Для этого я установил делегат для второй таблицы и реализовал tableViewSelectionDidChange.Прекрасно работает, поэтому, когда выбор изменяется в первой таблице, столбцы обновляются во второй.

Но вот проблема.Когда представление открывается впервые, мне нужно установить видимые столбцы второй таблицы на основе начального выбора первой, но я не могу получить первоначальный выбор первой таблицы.awakeFromNib не возвращает выбор, равно как и initWithNibName.Я думаю, что они запускаются до того, как заполняется первая таблица.

Итак, вот вопрос.Как получить начальный выбор первой таблицы при первом представлении представления.

Спасибо всем

Ответы [ 2 ]

0 голосов
/ 13 мая 2011

Решил это.В случае, если это может помочь кому-то еще или удовлетворить любопытство, вот решение.

Кроме того, я прошу прощения за то, что не включил достаточно информации в исходный вопрос.

Есть две таблицы, управляющие таблицами чиселпервым из которых является выбор таблицы, которая представляет собой тип представления «основной / подробный».Когда таблица выбрана, данные для нее отображаются в текстовых полях, одним из которых является количество столбцов.Мой метод tableViewSelectionDidChange извлекает это число из текстового поля и устанавливает столбцы во второй таблице.

tableViewSelectionDidChange действительно запускается при начальной загрузке представления, но кажется, что текстовые поля не заполняются в этой точке, так как текстовое полепустой.Он работает нормально после загрузки представления, но при начальной загрузке поля пусты.

Итак, я просто изменил tableViewSelectionDidChange, чтобы получить значение из управляемого объекта контроллера массива вместо текстового поля.Прекрасно работает сейчас.

Еще одно препятствие и больше знаний в моем путешествии из .NET в Какао.

Спасибо за помощь, и я обязательно добавлю ВСЕ соответствующую информацию в следующий вопрос.

0 голосов
/ 13 мая 2011

не зная, что вы используете для подачи данных в tableView, элементарный ответ - [tableView selectedRow]. документы: возвращает индекс последней выбранной строки или добавленной к выборке .

однако контекст вашего вопроса говорит о том, что вы не знаете о необходимости источника данных или контроллера массива, как ответил bavarious .

Если это так, вот ссылка , которая может быть полезна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...