2013-09-14 3 views
1

Позвольте мне объяснить мою проблему в контексте программы, с которой я работаю. Эта программа состоит из одного главного окна, которое имеет NSOutlineView и NSTabView. NSTabViewItems (и их соответствующее под просмотр) добавляются динамически во время выполнения (с использованием Cmd + T). Вышеупомянутое подвью является частью отдельного файла XIB; subview состоит из различных простых элементов управления вводом. Все это работает, как я только что описал.Как я могу динамически модифицировать subview с другого представления?

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

Самый очевидный способ, который я вижу, чтобы сделать это (это только упрощенный пример, не мой фактический код):

NSOutlineViewSubclass.h

@interface ... : NSOutlineView 
    @property (weak) IBOutlet NSTabView *tabView; 
@end 

NSOutlineViewSubclass.m

@implementation ... 
    @synthesize tabView; 

    - (void)foo 
    { 
     NSTabViewItem *currentTab = [tabView selectedTabViewItem]; 
     TabViewSubView *tabViewSubView = [currentTab view]; 

     // 
     //Manipulate subview controls here 
     // 
    } 

@end 

Похоже, что это нарушает парадигму MVC, поскольку Я манипулирую данные непосредственно в представлении (в данном случае NSOutlineViewSubclass), а не через контроллер. Но на данный момент единственный раз, когда я использую NSOutlineViewSubclassViewController, нужно создать новое представление для новой вкладки. Мой NSOutlineViewSubclass даже не знает об этом NSOutlineViewSubclassViewController. Я пропустил здесь шаг, связав эти два?

Спасибо!

ответ

0

Мне не хватать чего-то очень важного! Я не пользовался преимуществом очень важного владельца файла в моем XIB-файле. Это дает мне возможность связывать между двумя XIB и включать свойство View Controller.

Я понял, что мой ответ полностью из верхнего ответа here (написано, аналогично, его доцентом Дейлом Дитрихом).

Смежные вопросы