2017-08-24 14 views
-1

で「隠す」ボタンのリスナー私は、ユーザーの返品または[完了]ボタンをクリックし、それが完璧に動作したときに、キーボードを削除するのiOS:キーボード

- (BOOL)textFieldShouldReturn:(UITextField *)theTextField 

を使用しています。私の問題は、自分のアプリケーションがランドスケープモードにあるとき、またはiPadで実行したときに、キーボードに「隠す」ボタンが追加されていることです(写真に表示されるボタン)。クリックすると、キーボードは隠されますが、textFieldShouldReturnは決して呼び出されません。

このボタンがタップされたときはどうすれば検出できますか?

- (void)viewDidLoad { 
[super viewDidLoad]; 

// setup keyboard observers 
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(keyboardCameUp:) name:UIKeyboardWillShowNotification object:nil]; 
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(keyboardWentAway:) name:UIKeyboardWillHideNotification object:nil]; 
} 

これらのオブザーバーは、私たちのクラスにメソッドを呼び出します:UITextFieldですからキーボードは、我々はセットアップ例えば、このようなのviewDidLoadでオブザーバーは、可能性が育っているときに

enter image description here

答えて

1

は、iOSのは、登録されているすべてのオブザーバに次の通知を送信します。

  • UIKeyboardWillShowNotification
  • UIKeyboardDidShowNotification
  • UIKeyboardWillHideNotification
  • UIKeyboardDidHideNotification

あなたが例えば

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(keyboardhideHandle:) 
              name:UIKeyboardWillHideNotification 
              object:nil]; 



- (void) keyboardhideHandle:(NSNotification *)notification { 
    NSLog(@"you received the action here"); 
} 
ため Apple document

から詳細な情報を得ることができます

1

を検出するために、 (@セレクタを使用して)。私のものはkeyboardCameUpとkeyboardWentAwayと呼ばれます:

- (void)keyboardCameUp:(NSNotification *)notification { 
NSLog(@"Keyboard came up!"); 
} 

- (void)keyboardWentAway:(NSNotification *)notification { 
NSLog(@"Keyboard went away!"); 
} 

src:キーボードが表示または非表示になっている 場合はキーボード通知を受け取るhttp://pinkstone.co.uk

関連する問題