Mutliple рассматривает детали в интерфейсе master-detail - PullRequest
1 голос
/ 08 сентября 2011

Я создаю панель настроек для приложения, где пользователь может добавить веб-службу в список (в виде таблицы слева), а справа должна появиться форма, где пользователь может редактировать параметры конфигурации для веб-службы. (например, имя пользователя или пароль, ключ API или название блога Tumblr и т. д.) Я думаю, что мне понадобятся разные представления для разных типов услуг (возможно, с разной логикой проверки и т. д.)

Мой вопрос: как лучше всего это реализовать?

Что я сделал: У меня есть NSSplitView с NSTableView. У меня есть NSArrayController с content привязанным к соответствующему ключу в NSUserDefaultsController и NSTableView с привязкой к arrangedObjects и selectionIndexes. Затем я добавил NSTabView справа с привязкой selectedIndex к selectedIndex NSArrayController, и я пытаюсь программно вставить соответствующие представления (которые я создал как отдельные настраиваемые представления в IB) как вкладки.

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

1 Ответ

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

Вместо NSTabView создайте бланк NSView для инспектора (inspectorView).Та же идея, но немного проще.

В tableViewSelectionDidChange напишите что-то вроде:

newView = ...;

if (inspectorView != [customInspectorView superview]) {
    NSView *oldView = [[inspectorView subviews] objectAtIndex:0];
    [inspectorView replaceSubview:oldView with:newView];
}

Вы можете связать свои поля с servicesArrayController.selection.username и т. Д.

...