Проблема инициализации NSViewController - объекты пользовательского интерфейса не сохранены - PullRequest
0 голосов
/ 26 сентября 2011

У меня возникли проблемы с пониманием того, как работать с NSViewControllers на Mac.Я пытаюсь создать пользовательские ячейки таблицы для NSTableView.В одном из делегатов NSTableView он может возвратить представление вместо ячейки.

У меня есть подкласс NSViewController, и в .xib все соединено правильно, но когда я инициализирую NSViewControllerего компоненты пользовательского интерфейса не инициализированы ... даже представление по умолчанию, которое идет с ним.Я попробовал это с чистой, нетронутой реализацией NSViewController, просто чтобы убедиться, что проблема не в том, что я делаю.Это вероятно.Я инициализирую NSViewController следующим образом:

testview *tmpChannel = [[testview alloc] initWithNibName:@"testview" bundle:nil];

.xib существует, и все выходы связаны правильно.Кто-нибудь может объяснить, что здесь происходит?Я использую xCode 4.1 с Lion OS

Спасибо.

Ответы [ 2 ]

0 голосов
/ 26 сентября 2011

Объекты IB (xib) инициализируются только после фактической загрузки представления. И не во время initWithNibName: bundle:

0 голосов
/ 26 сентября 2011

Проверьте вашу инициализацию с помощью

NSLog(@"%@", [tmpChannel description]);

Из вашего кода я бы предположил, что вы получаете адрес объекта здесь.Это означает, что ошибка, вероятно, содержится в коде, который должен ее отображать.

Кстати, я рекомендую использовать имена классов с большой буквы, такие как TestView.

РЕДАКТИРОВАТЬ:

Дополнительная информация для загрузки XIBS: имя файла XIB должно быть точно такой же как имя класса.В этом случае вы можете фактически пропустить initWithNibName:bundle: часть:

// xib file is "ViewController.xib"
// Class is defined as "ViewController"

ViewController *newController = [[ViewController alloc] init];  // this is enough
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...