2012-05-09 22 views
0

私はどこにでもいました...おそらく私は正しい検索語を使用していません。これはよくある質問だと思います。キーボードのボタンをクリックして画面上のキーボードを消すイベント

ユーザーがキーボードを下げるためにボタンをクリックしてキーボードを閉じたときに処理できるイベントはありますか? UITextFieldのはfirstresponderになったときに

The red marked button

iは、ビューを上に移動しますが、このボタンは「管理キーボード」セクションの2番目の段落を

答えて

0

通知を使用してみてください。あなたのviewDidLoadにそれを追加します。

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

して、メソッドを作成keyboardWillHideと呼ばれる:

- (void)keyboardWillHide:(NSNotification *)notification { 
    //do whatever you need 
} 

は、それはあなたがevents.Youは、キーボードイベントを登録することができますキーボードを取得しNSNotificationCenterを使用することにより

0

を役に立てば幸いviewWillAppearとviewWillDisapperで登録抹消を忘れないでください。
ここでは使用する2つの通知:

  • (無効)viewWillAppear:あなたはこのようないくつかのことを行うことができますapple docs

    1. UIKeyboardDidShowNotification apple docs
    2. UIKeyboardDidHideNotification(BOOL)がアニメ化{
      [super viewWillAppear:animated];
      NSLog(@ "キーボードイベントの登録");イベントの

//レジスタ
[NSNotificationCenter defaultCenter] addObserver:自己 セレクタ:@selector(keyboardDidShow :) 名:UIKeyboardDidShowNotification オブジェクト:なし]。
[NSNotificationCenter defaultCenter] addObserver:自己 セレクタ:@selector(keyboardDidHide :) 名:UIKeyboardDidHideNotification オブジェクト:なし]。

//セットアップコンテンツサイズ scrollview.contentSize = CGSizeMake(SCROLLVIEW_CONTENT_WIDTH、 SCROLLVIEW_CONTENT_HEIGHT); //例えば用(320,460)

//最初はキーボードが隠されていた keyboardVisible = NO; // in。hはBOOLを宣言するkeyboardVisible;

}

- (ボイド)viewWillDisappear:(BOOL)( "キーボードイベントの登録解除" @){
のNSLogアニメーション。
[[NSNotificationCenter defaultCenter] removeObserver:self];
}

- (ボイド)keyboardDidShow:(NSNotification *)NOTIF {
のNSLog(@ "キーボードが表示されています")。
//キーボードが表示されている場合、
if(keyboardVisible){
NSLog(@ "Keyboard is already visible。通知を無視する");
return;
}

// Get the size of the keyboard. 
NSDictionary* info = [notif userInfo]; 
NSValue* aValue = [info objectForKey:UIKeyboardBoundsUserInfoKey]; 
CGSize keyboardSize = [aValue CGRectValue].size; 

// Save the current location so we can restore 
// when keyboard is dismissed 
offset = scrollview.contentOffset; //in .h declare CGPoint offset and UIScrollView *scrollview.; 

// Resize the scroll view to make room for the keyboard 
CGRect viewFrame = scrollview.frame; 
viewFrame.size.height -= keyboardSize.height; 
scrollview.frame = viewFrame; 

CGRect textFieldRect = [activeField frame];//in .h UITextField *activeField; 
textFieldRect.origin.y += 10; 
[scrollview scrollRectToVisible:textFieldRect animated:YES];  

// Keyboard is now visible 
keyboardVisible = YES; 

}

- (無効)keyboardDidHide:(NSNotification *) {
// NOTIF(keyboardVisible!){
のNSLog(あればキーボードはすでに
が示されています@ "キーボードはすでに隠されています。通知を無視してください。
return;
}

// Reset the frame scroll view to its original value 
scrollview.frame = CGRectMake(0, 0, SCROLLVIEW_CONTENT_WIDTH, SCROLLVIEW_CONTENT_HEIGHT); 

// Reset the scrollview to previous location 
scrollview.contentOffset = offset; 

// Keyboard is no longer visible 
keyboardVisible = NO; 

}

- (BOOL)textFieldShouldReturn:(UITextFieldの*)テキストフィールド
{
[テキストフィールドresignFirstResponder]。
return YES;
}
希望はあなたを助けるだろう:)

関連する問題