uitextfield делегат должен быть владельцем файла? - PullRequest
0 голосов
/ 02 апреля 2010

Я видел несколько ссылок (например, здесь ) в ответ на то, что у людей возникают проблемы с отключением клавиатуры в iPhone, которые говорят: «дважды проверьте, что делегат присоединен к владельцу файла.

Это обязательно правда? Или просто стандартная практика? Разве я не могу иметь другие объекты в моем перо, такие как подкласс UIViewController, и создавать подключения к ним, как мне нравится? Я не хотел бы, чтобы все направлялось в объект, который является владельцем файла.

Тем не менее, мне трудно заставить клавиатуру исчезнуть. Я знаю, что это связано с делегатом, потому что я могу установить точки останова и пройти через код. Я вижу, как вызывается [theTextField resignFirstResponder] (и возвращается true), но клавиатура все равно не исчезнет.

Есть еще предложения?

1 Ответ

0 голосов
/ 02 апреля 2010

Все элементы управления в конкретном представлении предназначены для связи с контроллером представления, которому принадлежит файл пера. Даже если у вас есть, скажем, UISlider, который изменяет значение UITextField, это будет обрабатываться методом в вашем подклассе UIViewController, который запускается при изменении значения ползунка и обновляет текст в текстовом поле. Таким образом, 9 из 10 ваш UIViewController будет владельцем nib-файла.

Обычно метод делегата текстового поля, который вы хотите определить, это textFieldShouldReturn, вызывая resignFirstResponder в текстовом поле, что звучит так, как будто вы сделали.

Убедитесь, что розетка для theTextField также подключена. Это может быть nil, и среда выполнения будет рассматривать [nil resignFirstResponder] как noop, а не как ошибку.

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