2010-08-23 101 views
0

我需要在顯示鍵盤時將視圖向上移動,但僅對於視圖底部的1個文本框,我認爲這將與檢查isFirstResponder一樣簡單,但沒有這樣的運氣 - 這是我正在嘗試的:只有在ipad上點擊某個文本字段時才顯示鍵盤?

if ([notes isFirstResponder]) { 

    [UIView beginAnimations:@"moveupcontrols" context:nil]; 
    [UIView setAnimationDuration:.25]; 
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
    self.view.frame=CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y-kOrderFormKeyboardHeight, self.view.frame.size.width, self.view.frame.size.height) ; 
    [UIView commitAnimations]; 

    keyboardIsShown = YES; 
} 

我假設通知在我的文本字段上設置FirstResponder標誌之前觸發。關於這方面的解決方法的想法?

回答

2

爲什麼不使用UITextField -textFieldShouldBeginEditing:delegate方法?這將在編輯開始之前被調用,並且您可以在那裏執行動畫。

+0

很好,謝謝 – Slee 2010-08-24 14:48:51

0

爲什麼不設置標籤到該文本字段並將相同的代碼添加到textFieldDidBeginEditing委託方法?您將不得不檢查標記值而不是isFirstResponder。

0

下面是一些代碼爲你做:

- (void)viewDidLoad { 
    textField1.tag = 1; 
    textField2.tag = 2; 

    textField1.delegate = self; 
    textField2.delegate = self; 
} 

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 
    if (textField.tag == 1) { 
    // then animation here 
    } 
} 

不要忘記comform到UITextFieldDelegate協議。

More about tag here。更多關於UITextFieldDelegate here

相關問題