Вопрос

Приложение Core Data на основе «Мой документ» (с использованием привязок в IB) имеет две сущности: Сотрудник (с атрибутом employeeName ) и Табель учета рабочего времени . (с атрибутами timeDescription и entryDate ). Сотрудник имеет отношение один ( employeeDetails ) ко многим ( employeeTimeSheet ) с TimeSheet .

Я создаю Master-Detail для записи TimeSheet.

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

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

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

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

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

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

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

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

Билли.

Это было полезно?

Решение 2

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

Я связал NSPopupButton content с EmployeeController , arорядоченными объектами , contentValue с EmployeeController , schemeObjects , employeeName , а его selectedIndex равно EmployeeController , selectionIndex .

Отлично работает.

Билли.

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top