Использование всплывающей кнопки в Master-Detail - PullRequest
1 голос
/ 04 февраля 2011

Основанное на моем документе приложение Core Data (использующее привязки в IB) имеет две сущности: Employee (с атрибутом employeeName ) и TimeSheet timeDescription и entryDate атрибуты). Сотрудник имеет отношение один ( employeeDetails ) - ко многим ( employeeTimeSheet ) с TimeSheet .

Я создаю Master-Detail, настроенную для записи в расписании.

Для Мастера у меня есть один столбец tableView, который имеет значение , привязанное к: EmployeeController (NSArrayController, использующий сущность Employee), managedObjects, employeeName .

У меня есть detailController (еще один NSArrayController), который настроен как NSMutableDictionary с его contentSet , привязанным к EmployeeController , selection , employeeTimeSheet .

Затем у меня есть Detail tableView, у которого есть три столбца, с соответствующими значениями , привязанными к DetailController , ограммOObjects , employeeDetails.employeeName (столбец 0), entryDate (столбец 1) и timeDescription (столбец 2).

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

Моя проблема в том, что вместо того, чтобы иметь табличное представление в качестве главного представления, я хотел, чтобы вместо него была NSPopupButton, из которой я могу выбрать сотрудника и просмотреть все записи времени, связанные с этим сотрудником.

Я пробовал каждую комбинацию содержимого, значения, layoutObjects, selectedObject (s) и т. Д. С каждой комбинацией контроллеров, которые у меня есть, но я не могу заставить NSPopupButton вести себя аналогично табличному представлению из одного столбца.

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

Кто-нибудь может указать, где я иду не так? Я бы опубликовал код, но это не совсем уместно, потому что это в основном IB.

Билли.

Ответы [ 2 ]

1 голос
/ 02 сентября 2011

Кстати: detailController будет заполняться новым объектом сотрудника "автоматически".Убедитесь, что для параметра «managedObjectContext» выбран один и тот же контроллер (employeeController).

0 голосов
/ 04 февраля 2011

Хорошо, я нашел это.Я знал, что после публикации здесь я сразу найду его.

Я связал NSPopupButton content с EmployeeController , ограммаObjects , contentValue до EmployeeController , layoutObjects , employeeName , а selectedIndex до EmployeeController , selectionIndex .

Прекрасно работает.

Билли.

...