ищу лучший способ активировать и деактивировать фон текстовых полей в моем графическом интерфейсе (Cocoa OSX) - PullRequest
0 голосов
/ 25 февраля 2010

У меня есть небольшое приложение с графическим интерфейсом, которое состоит из выбираемых групп, каждая группа имеет кнопку раскрытия для отображения своей подгруппы, изображения и текстового поля. Когда вы редактируете текстовое поле и выбираете другую группу или другое текстовое поле, я хочу закончить редактирование старого текстового поля. Кроме того, я хочу, чтобы фон текстового поля отображался только при редактировании.

Я пытаюсь сделать это, добавив вызов для активации фона в становлении становления и деактивации в textDidEndEditting. Я закончил тем, что поместил вызов deactivate в textDidEndEditting вместо resignFirstResponder, потому что кажется, что когда я выбираю textField, он вызывает resignFirstResponder сразу после становленияFirstResponder. Мне интересно, это нормальное поведение или это признак какой-то другой проблемы с моим кодом? Если это нормальное поведение, есть лучшее место, чтобы поместить вызов для деактивации этого фона, потому что иметь его в textDidEndEditting проблематично.

1 Ответ

0 голосов
/ 25 февраля 2010

Я не думаю, что одно и то же текстовое поле вызывает как resignFirstResponder, так и becomeFirstResponder.

Текстовые поля должны автоматически заканчивать редактирование, когда вы перемещаете фокус на другой элемент пользовательского интерфейса. Вам не нужно вручную управлять этим. Однако, если вы хотите изменить поле при получении или потере фокуса, вы должны поместить эту функцию в becomeFirstResponder и resignFirstResponder соответственно.

...