Дайте мне предложение для UIReturnKey цвет / отключить свойство - PullRequest
0 голосов
/ 30 августа 2011

Мое приложение выглядит как приведенная ниже привязка в некоторых сценариях.

enter image description here

Существует один UITextField для получения названия отдела от пользователя.Изначально кнопка «Готово» на панели навигации отключена.То есть, установите для свойства enabled кнопки правой панели значение NO

UIKeyBoard текстового поля было создано с помощью кода ниже

fieldForDepartment.keyboardAppearance = UIKeyboardAppearanceAlert; //This provides the black appearance to the keyboard
fieldForDepartment.returnKeyType = UIReturnKeyDone; //This set the return key type as Done
fieldForDepartment.clearButtonMode = UITextFieldViewModeWhileEditing; //This is used because i want a small cross button in the right end of my text field to clear the text field value

(Здесь fieldForDepartment - UITextFieldимя экземпляра)

Я хочу включить кнопку «Готово» на панели навигации, если и только если в текстовом поле должна быть хотя бы одна буква (даже может быть пробел).Кнопка «Готово» должна быть отключена, если в моем текстовом поле нет буквы.

Для этого я реализовал этот код ...

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    if ([[fieldForDepartment.text stringByReplacingCharactersInRange:range withString:string] isEqual:@""] || [fieldForDepartment.text stringByReplacingCharactersInRange:range withString:string] == nil) {
        rightBarButton.enabled = NO;
    }
    else {
        rightBarButton.enabled = YES;
    }
    return YES;
}

Этот метод textField: shouldChangeCharactersInRange: getвызывается для каждой буквы нажмите на клавиатуре.

[fieldForDepartment.text stringByReplacingCharactersInRange:range withString:string] выведет текущую строку (включая последнюю нажатую букву) из UITextField

Так что при нажатии буквы в текстовом поле приложение будет выглядеть следующим образом ...

enter image description here

Вот моя проблема ..

Кнопка «Готово» на UIKeyboard всегда подсвечивается.Таким образом, это нарушает поведение кнопки «Готово» на панели навигации.Я хочу отключить / включить кнопку «Готово» на UIKeyboard таким же образом, как работает кнопка «Готово» на панели навигации.Возможно ли это?

Некоторые вопросы, которые у меня возникают:

Можно ли отключить кнопку "Готово" на UIKeyboard?

или

Могу ли я просто изменить цвет фона и цвет выделения кнопки «Готово» на UIKeyboard?(Чтобы пользователь мог чувствовать, что кнопка не может быть нажата)

или

Могу ли я скрыть кнопку Готово в UIKeyboard?

Пожалуйста, предложите, какая из них хорошаяспособ решить мою проблему ...

Заранее спасибо

1 Ответ

2 голосов
/ 30 августа 2011

* * * * * * * * * * * * * * * * * * * * * * * * * * * * в разделе свойств *1003* свойства построителя интерфейса. Он делает именно то, что вам нужно, просто проверьте это.

Если вам нужно внести изменения в код, используйте свойство enablesReturnKeyAutomatically UITextField (это фактически определено в протоколе UITextInputTraits, который реализует класс)

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