Если вы хотите использовать table view, вы должны реализовать datasource методы.
Если у вас несколько взаимозависимых компонентов, то вам нужно отслеживать изменение состояния всех этих компонентов, например, если в dropdown-компоненте выбран другой элемент, то надо изменить таблицу.
Cocoa Bindings позволяет определять все эти взаимосвязи.
Перед повторением данного примера рекомендуется прочитать:
1) Добавляем примерно такой класс:
@interface MyObjectController : NSObject @property (nonatomic, retain) NSMutableArray *objects; @end @implementation MyObjectController @synthesize objects; - (id)init { self = [super init]; if (self == nil) return nil; [self loadArray]; return self; } - (void)loadArray { objects = [[NSMutableArray alloc] initWithObjects: [NSDictionary dictionaryWithObjectsAndKeys:@"Prabhu",@"name",@"784546",@"uid",nil], [NSDictionary dictionaryWithObjectsAndKeys:@"Sachin",@"name",@"278956",@"uid",nil], [NSDictionary dictionaryWithObjectsAndKeys:@"Rahul",@"name",@"368895",@"uid",nil], [NSDictionary dictionaryWithObjectsAndKeys:@"Dravid",@"name",@"456275",@"uid",nil], [NSDictionary dictionaryWithObjectsAndKeys:@"Ganguly",@"name",@"787887",@"uid",nil], [NSDictionary dictionaryWithObjectsAndKeys:@"Dhoni",@"name",@"332356",@"uid",nil], [NSDictionary dictionaryWithObjectsAndKeys:@"Kohli",@"name",@"896574",@"uid",nil], [NSDictionary dictionaryWithObjectsAndKeys:@"Raina",@"name",@"782368",@"uid",nil], nil]; } @end
Здесь свойство objects содержит данные для отображения.
2) Добавляем из Object library компонент Object. В Identity inspector можно установить значение для Label, которое будет отображаться в Interface Builder. А также Custom Class надо установить в созданный ранее MyObjectController.
3) Добавляем из Object library компонент Array Controller. В Identity inspector можно установить значение для Label, которое будет отображаться в Interface Builder. В Bindings inspector делаем Bind to к созданному ранее Object. А в Model Key Path ставится objects.
4) Далее выделяем Table View и в Bindings inspector ставим Bind to к Array Controller, а Controller key в arrangedObjects.
5) Далее выделяем Text Field и в Bindings inspector ставим Bind to к Table Cell View, а Model Key Path в objectValue.uid.
6) Запуск!
- NSTableview Binding | i Tutorials
- CocoaDevCentral: Intro to Bindings
- How to Use Cocoa Bindings and Core Data in a Mac App | Ray Wenderlich
- Connecting NSOutlineView to Core Data in 10.6 Part 1: Ordered Trees | Life as Clay
- Daemon Construction: A simple NSTableView application with NSArrayController and NSUserDefaultsController
- Python for Bioinformatics: Cocoa: TableView bindings---simplest possible example
- Cocoa Bindings Programming Topics: Controller Key-Value Observing Compliance
- NSArrayControllers and binding – an example | Useless Thingies
- http://web.stanford.edu/class/cs193e/Downloads/CocoaBindingsTutorial.pdf