Использование всплывающей кнопки в Master-Detail
Основанное на моем документе приложение Core Data (использующее привязки в IB) имеет две сущности: Employee (с атрибутом employeeName) и TimeSheet (с атрибутами timeDescription и entryDate). Сотрудник имеет отношение один (employeeDetails) к многим (employeeTimeSheet) с TimeSheet.
Я создаю Master-Detail, настроенный для записи в расписании.
Для мастера у меня есть один столбец tableView, значение которого связано с: EmployeeController (NSArrayController, использующий сущность Employee),ограмма Oppject, employeeName.
У меня есть detailController (другой NSArrayController), который настроен как NSMutableDictionary, у которого есть свой contentSet, связанный с EmployeeController, selection, employeeTimeSheet.
Затем у меня есть Detail tableView, который имеет три столбца, с соответствующими значениями, привязанными к DetailController, selectedObjects, employeeDetails.employeeName (столбец 0), entryDate (столбец 1) и timeDescription (столбец 2).
Теперь все это работает нормально, я могу выбрать сотрудника из основной таблицы, а в таблице сведений отображаются все записи расписания, связанные с этим сотрудником. Я могу добавлять записи, используя выбранного сотрудника, все отлично работает.
Моя проблема заключается в том, что вместо того, чтобы иметь табличное представление в качестве основного представления, я хотел, чтобы на его месте была NSPopupButton, из которой я могу выбрать сотрудника и просмотреть все записи времени, связанные с этим сотрудником.
Я пробовал каждую комбинацию содержимого, значения, layoutObjects, selectedObject (s) и т. Д. С каждой комбинацией контроллеров, которые у меня есть, но я не могу заставить NSPopupButton вести себя аналогично табличному представлению с одним столбцом.
Я тщетно искал дополнительную информацию по этому вопросу и несколько раз перечитывал документацию по привязкам, но все время путался. Я чувствую, что это должно быть относительно просто, но я просто не могу этого понять. Я ломал голову уже почти два дня, прежде чем писать здесь.
Кто-нибудь может указать, где я иду не так? Я бы опубликовал код, но это не совсем уместно, потому что это в основном IB.
Билли.
2 ответа
Хорошо, я нашел это. Я знал, что после публикации здесь я найду это сразу.
Я связал содержимое NSPopupButton с EmployeeController, layoutObjects, contentValue с EmployeeController, layoutObjects, employeeName, а его selectedIndex - с EmployeeController, selectionIndex.
Работает отлично.
Билли.
Кстати, detailController будет заполнен новым объектом сотрудника "автоматически". Убедитесь, что для параметра "managedObjectContext" установлен один и тот же контроллер (employeeController).