2011-01-24 2 views
3

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

alt text

Если я выбрать любую дату, она будет выглядеть следующим образом ....

alt text

Крест символ в текстовом поле дружнее по код ....

textField.clearButtonMode=UITextFieldViewModeAlways; 

Теперь моя проблема заключается в том, что при нажатии на эту крестовую кнопку отображается клавиатура. Это похоже ....

alt text

Но я хочу кнопку перекрестное только для стирания текста поля. Клавиатура не должна появляться. Является ли это возможным?

ответ

3

на ваш UITextFieldDelegate, реализовать метод - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField и вернуть NO;

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 
return NO; 
} 
+0

Спасибо ... это работает :) –

1

Попробуйте установить для редактируемого свойства этого текстового поля значение false.

3

В методе TextField в «Редактирование было начать», добавьте следующее:

[UITextField resignFirstResponder];

с этим на месте, что клавиатура не будет отображаться.

День кодирование :)

+0

Это неправильное место для этого. Вы можете в итоге показать анимацию клавиатуры, а затем исчезнуть. Правильное место для этого - до того, как текстовое поле станет активным, и поэтому клавиатура не будет отображаться даже в течение нескольких мгновений. – vfn

+0

Хорошая точка vfn. Я не думал об этом много, поскольку код работал на моем iPhone 4, когда я быстро его протестировал. –

+0

Спасибо Aurum .. –

0

Как уже говорили другие, вы можете скрыть клавиатуру через протокол UITextFieldDelegate и через метод [texfField resignFirstResponder]. В качестве альтернативы, как было предложено vfn, вы можете запретить клавиатуре показывать ее вообще.

Для этой кнопки, хотя вы молоды, хотите установить свойство текстового поля clearButtonMode. Чтобы узнать, какие у вас есть доступные варианты, прочтите следующее: http://developer.apple.com/library/ios/documentation/UIKit/Reference/UITextField_Class/Reference/UITextField.html#//apple_ref/doc/c_ref/UITextFieldViewMode

+0

'UITextFieldDelegate' - это протокол, а не класс. Чтобы уйти в отставку в качестве первого ответчика, вы должны быть уведомлены о том, что текстовое поле стало активным, и для этого вам необходимо реализовать протокол, и поэтому нет OR. – vfn

+0

@vfn Я стою исправлен. Сейчас не в моей временной зоне. Спасибо что подметил это. – Moshe

Смежные вопросы