2011-01-26 11 views
2

テキストフィールドを隠蔽しないようにキーボードが表示されているため、ブックの例を使ってビューをスライドさせていました。キーボードが隠れた後にiPhoneの表示がリセットされない

キーボードを隠すためにバックグラウンドをクリックすると、ビューがスライドし、スライドしないという事実を除いてすべてが機能します。キーボードは隠れていますが、ビューは上にシフトしたままです。キーボードを隠すためにリターンキーを使用すると、すべて正常に動作します。以下は、私のコードです:

- (void)keyboardWillShow:(NSNotification *)notif { 
    NSDictionary* info = [notif userInfo]; 
    NSValue* aValue = [info objectForKey: 
         UIKeyboardBoundsUserInfoKey]; 
    CGSize keyboardSize = [aValue CGRectValue].size; 
    float bottomPoint = (password.frame.origin.y+ 
         password.frame.size.height+10); 

    scrollAmount = keyboardSize.height - 
    (self.view.frame.size.height- bottomPoint); 
    if (scrollAmount > 0) { 
     moveViewUp = YES; 
     [self scrollTheView:YES]; 
    } 
    else 
     moveViewUp = NO; 
} 
- (void)scrollTheView:(BOOL)movedUp { 
    [UIControl beginAnimations:nil context:NULL]; 
    [UIControl setAnimationDuration:0.3]; 
    CGRect rect = self.view.frame; 
    if (movedUp){ 
     rect.origin.y -= scrollAmount; 
    } 
    else { 
     rect.origin.y += scrollAmount; 
    } 
    self.view.frame = rect; 
    [UIControl commitAnimations]; 
} 

-(BOOL)textFieldShouldReturn:(UITextField *) theTextField { 
    [theTextField resignFirstResponder]; 
    if (moveViewUp) [self scrollTheView:NO]; 
    return YES; 
} 

私はもう一度キーボード

を非表示にするには、背景をタッチすると、キーボードの後に​​ダウンアニメーションどのようなビューが隠されている理由を任意のヘルプは高く評価され考え出すタフな時間を持っています。

+0

背景をクリックすると(完了していない)、textFieldShouldReturnメソッドが発生することを確認しましたか? – DerekH

+0

ええ、私はこれを早めにチェックしなければなりません。私のtextFieldShouldReturnメソッドは起動しません。なぜどんなアイデア? – mike

答えて

0

textFieldShouldReturnメソッドは、キーボードの戻るボタンを押したときにのみ呼び出されます。すべての種類のキーボードが消滅するようにするには、textFieldDidEndEditingを使用します。

もう1つの方法は、UIKeyboardWillHideNotificationUIKeyboardWillShowNotificationを登録することです。

0

アニメーション文の 'UIControl'を 'UIView'に変更します。

関連する問題