2017-02-03 10 views
1

私は多くのテキストフィールドのサブビューを持つカスタムビューのxibファイルを持っています。テキストフィールドのそれぞれに代理人をファイル所有者に設定し、texfield代理メソッドを正常に実行できるようにしました。しかし残念なことにキーボード通知メソッドkeyboardWillShow:とkeyboardWillHide:はまったく呼び出されません。NSNotification keyBoardWillShowとkeyboardWillHideは呼び出されません

私はtextfieldShouldBeginEditingでオブザーバーを追加し、オブザーバーをtextFieldDidEndEditingで削除しました。ここで

は、私のコードの抜粋です:

はオブザーバーに

通知

- (void)keyboardWillShow:(NSNotification *)notification 
{ 
NSLog(@"Here"); 
} 

- (void)keyboardWillHide:(NSNotification *)notification 
{ 
NSLog(@"There"); 
} 

//のいずれかのオブザーバー

-(void) textFieldDidEndEditing : (UITextField *) textField{ 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; 
} 

//メソッドを削除

-(void) textFieldShouldBeginEditing : (UITextField *) textField{ 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; 
} 

を追加しますそれらのキーボーヤrdwillShowとkeyboardWillHideは呼び出されません。

誰かが私のコードや欠落している可能性のある下位問題の問題を理解するのに役立ちます。

+0

'keyboardFieldDidBeginEditing:'が呼び出される前にキーボードが表示され、 'keyboardWillShow'は決して呼び出されない可能性があります。先に観測を開始し、何かが変化するかどうかを確認してください。 – TheAmateurProgrammer

答えて

0

textViewを編集してキーボードを表示しているときにオブザーバーを追加しています。キーボードがすでに表示されているため、電話がかかりません。 viewWillAppearにオブザーバーを追加し、viewWillDisappearメソッドを削除する必要があります。

+0

keyboardShouldBeginEditingでオブザーバーを追加しました。申し訳ありませんが、私は言った。また、それはxibファイルのみであり、viewcontrollerはxib名に基づいて他のビューをインスタンス化し、同じxibは親ビューコントローラでインスタンシエートされないかもしれません。 – RoshUn

+0

'viewWillAppear'の前に追加してください。 –

+0

私はawakeFromNibメソッド – RoshUn

関連する問題