0
我按照蘋果的指導Managing keyboard滾動到新的文本框選擇一個新的文本框
它的工作原理就像一個魅力,除非你已經在一個新的文本字段一個文本框和標籤書寫時。
這是在示例中的功能,負責滾動。但它永遠不會被稱爲,因爲它已經上漲了?
- (void)keyboardWasShown:(NSNotification*)aNotification;
任何人都知道這個問題的一個很好的解決方案?
我按照蘋果的指導Managing keyboard滾動到新的文本框選擇一個新的文本框
它的工作原理就像一個魅力,除非你已經在一個新的文本字段一個文本框和標籤書寫時。
這是在示例中的功能,負責滾動。但它永遠不會被稱爲,因爲它已經上漲了?
- (void)keyboardWasShown:(NSNotification*)aNotification;
任何人都知道這個問題的一個很好的解決方案?
在.H
CGSize keyboardSize;
和
- (void)keyboardWasShown:(NSNotification*)aNotification;
在.M
- (void)keyboardWasShown:(NSNotification*)aNotification {
NSDictionary* info = [aNotification userInfo];
if (info) {
/* Can get keyboard Size */
keyboardSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey]
}
/* Animation code */
}
- (void)textFieldDidBeginEditing:(UITextField *)textField {
activeField = textField;
[self keyboardWasShown:[NSNotification notificationWithName:UIKeyboardDidShowNotification object:nil]];
}
感謝vakio。
接口:
CGSize keyboardSize;
BOOL keyboardIsVisible;
實施,keyboardWasShown:
keyboardSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
keyboardIsVisible = YES;
// Move ScrollView
keyboardWillBeHidden:
keyboardIsVisible = NO;
textFieldDidBeginEditing:
if (keyboardIsVisible) {
// Move ScrollView
}
這只是常識。正如你可以在蘋果例子中看到的那樣,它已經在監聽了。所以問題是我如何執行從textFieldDidBeginEditing移動鍵盤的代碼? – David 2011-05-27 12:29:32
那麼,你可以簡單地調用UIScrollView的'setContentOffset:'或' - (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated'並輸入文本框的矩形。 (因爲你知道鍵盤的大小,所以你可以將它存儲起來並在'textFieldDidBeginEditing:'中使用它,儘管你不需要知道鍵盤的大小。 – vakio 2011-05-27 12:33:23
keyboardWasShown函數的關鍵是我可以計算出我想要看到的矩形,以及我希望通過知道鍵盤的大小來使其可視的位置。 – David 2011-05-27 12:38:38