В Какао вы действительно не добавляете / не удаляете строки в NSTableView напрямую. В вашем контроллере вы можете использовать протокол NSTableDataSource, который имеет 2 важных метода, которые вам необходимо реализовать, чтобы заставить это работать:
- (int) numberOfRowsInTableView:(NSTableView *)aTableView
- (id) tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex
Эти методы будут отвечать на сообщения, которые табличное представление отправляет в его источник данных (настроенный в интерфейсе Builder), чтобы заполнить таблицу строками данных. В этих реализациях метода вам нужно будет вернуть информацию, которая требуется для метода (количество строк; значение ячейки в конкретной строке), запросив любое хранилище данных, которое вы разработали.
Ваш Методы addItem
и removeItem
также должны будут хранить / удалять данные строк (в любом виде, который вы придумали).
Самый простой способ сделать это в Cocoa - это привязки. Создайте NSArrayController
, связанный с экземпляром NSMutableArray
, и привяжите NSArrayController
к NSTableView
.
CocoaDev дает хороший результат. обзор процедуры . Вы также можете прочитать документацию Apple и превосходную статью CocoaDev о привязках.