Подвиды UIView не отвечают делегатам - PullRequest
1 голос
/ 20 апреля 2010

У меня следующий код в viewDidLoad

myViewController = [[UIViewController alloc] initWithNibName:@"myView" bundle:nil] ;
self.myView = myViewController.view;
[self.view addSubview:myView];

Этот код загружает представление из myView.nib (у меня, конечно, есть соответствующие файлы контроллера m и h). MyView View имеет UITextField и другие элементы управления. Пока все хорошо - я вижу все свои элементы управления на экране.

Проблема, однако, заключается в том, что, хотя я устанавливаю делегата для UITextField как владельца файла (который является myView) и реализую UITextFieldDelegate в myView.m, методы делегата никогда не запускаются!

Этого НЕ произойдет, если я добавлю UITextField к исходному виду (созданному XCode как шаблон по умолчанию). Почему это происходит?

Причина, по которой мне нужно использовать Subview, потому что в реальном коде вид слоя будет на UIScrollView, чтобы я мог панорамировать и масштабировать.

спасибо!

1 Ответ

0 голосов
/ 01 февраля 2011

Мой первый вопрос к вашему вопросу: «Есть ли причина использовать UIViewController для загрузки файла NIB?».

Похоже, что вы "выбрасываете" UIViewController и просто используете его для загрузки NIB-файла. Я бы остановил это сначала, так как это может помочь вам отладить эту проблему. Использование:

self.myView = (UIView*)[NSBundle loadNibNamed:@"myView"];

Вторая часть, которую я хотел бы задать, заключается в том, что вы говорите «Владелец файла» - поскольку вы используете отдельный UIViewController, возможно, он настроен на обратный вызов вашего UIViewController, а не код, который вы имеете в виду для обратного вызова , Может быть, вы могли бы немного рассказать нам о настройке файла XIB?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...