2011-02-09 2 views
0

Я начал с кода просмотра Swapping из книги Hillegass Cocoa Programming для MAC OS X. Этот код использует всплывающее меню в MyDocument.nib для обмена ViewControllers с помощью displayViewController в MyDocument.m, частично представленном ниже. Я пытаюсь использовать вместо строк таблицы в ViewController поменять ViewControllers по телефону displayViewController в MyDocument.m от ViewController, создавший таблицу:Доступ к IB NSBox в MyDocument из другого класса?

- (void)displayViewController:(ManagingViewController *)vc 
        curBox: (NSBox *)windowBox 
{ 
// End editing 
NSWindow *w = [windowBox window]; 
BOOL ended = [w makeFirstResponder:w]; 
if (!ended) { 
    NSBeep(); 
    return; 
} 
... 

Проблема, которую я имею, когда я называю displayViewController от другой ViewController Мне нужно отправить через созданный NSBox Interface Builder экземпляр NSBox в MyDocument.nib, чтобы представление можно было поменять местами в NSBox в MyDocument.m. Поэтому для этого мне нужно иметь доступ к создаваемому интерфейсом NSBox интерфейса в MyDocument.nib из другого ViewController.

Кто-нибудь знает, как получить доступ к создаваемому интерфейсом NSBox интерфейса в MyDocument.nib из другого ViewController?

EDIT:

Я достиг некоторого прогресса. Иерархия точки зрения:

Window 
    ContentView 
    NSBox 

Я был в состоянии получить верхнее окно уровня и текущий ContentView следующие:

NSWindow *w = self.view.window; 
NSView *v = [w contentView]; 

, но я до сих пор не понял, как получить NSBox, который находится внутри ContentView. Я пробовал следующее, но они не сработали:

NSBox *b = [v container]; 
NSBox *b = [v content ]; 

У кого-нибудь есть идеи?

ответ

0

Я нашел решение. NSBox является подразделением ContentView. Таким образом, следующие работы:

NSWindow *w = self.view.window; 
NSArray *va = [[w contentView] subviews]; 
NSBox *b = [va objectAtIndex:0]; 

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

  • Нет связанных вопросов^_^