Я создание УВЕДОМЛЕНИЯ получить КЛАВИАТУРЫ информации, чтобы настроить представление таким образом, что выбранное текстовое поле не охватывается КЛАВИАТУРЫ.В iOS, как мне получить информацию о клавиатуре, чтобы предотвратить наложение текстовых полей на клавиатуру?
@property CGSize keyboard;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:@"UIKeyboardWillShowNotification"
object:nil];
...
}
- (void) keyboardWillShow:(NSNotification *)note
{
NSDictionary *userInfo = [note userInfo];
self.keyboard = [[userInfo objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
}
Я настроил UITextFieldDelegate так что я могу использовать КЛАВИАТУРУ информацию в
- (void)textFieldDidBeginEditing:(UITextField *)textField
Все работает отлично ...
в первый раз, за исключением.
УВЕДОМЛЕНИЯ, который устанавливает КЛАВИАТУРЫ свойства называется после textFieldDidBeginEditing поэтому очень первый раз КЛАВИАТУРЫ свойства не было установлено так, что отображается неправильно.
После этого все в порядке, так как свойство KEYBOARD уже настроено и значения не меняются.
Как я могу получить КЛАВИАТУРУ информации перед первым исполнением textFieldDidBeginEditing?
EDIT:
ли найти что-то решение, и это, кажется, работает, но он чувствует себя немного хака ко мне, и я все еще интересно, если есть способ, чтобы получить информацию клавиатуры ,
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.txtField becomeFirstResponder];
}
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self.txtField resignFirstResponder];
}
ли дать краткую вспышку в самом низу экрана, как это показывает и скрывает клавиатуру, которая мне не нравится, но это, вероятно, не очень очевидны или заметны кому-то, что не знает ищите его.
я должен разбить becomeFirstResponder и resignFirstResponder в различные методы, потому что если они вызываются из той же методы, то keyboardWillShow не дозвонился.
Кроме того, не может разместить becomeFirstResponder в viewDidLoad потому keyboardWillShow не вызывается в этой ситуации тоже.
Если у кого-то есть улучшение или лучший способ, я бы хотел его услышать.