[編輯:]問題已解決。我沒有在UIBuilder
中正確鏈接我的代表。代碼很好!當鍵盤到位時移動UIScrollView
我想在鍵盤出現時調整scrollview的大小。我去了開發人員文檔並找到了這些信息。
左側的 「管理鍵盤」。
在文檔中它顯示了一些代碼來檢測鍵盤的大小,然後調整UIScrollView
的大小。我已經在代碼中放置一個NSLog
消息功能- (void)keyboardWasShown:(NSNotification*)aNotification
,所以我看到這個函數實際上是被調用,但是當我嘗試到NSLog
的kbSize
.height它始終爲0。
價值爲什麼會出現代碼蘋果爲此提供了不起作用?
- (void)keyboardWasShown:(NSNotification*)aNotification
{
NSDictionary* info = [aNotification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0, kbSize.height, 0.0);
scrollView.contentInset = contentInsets;
scrollView.scrollIndicatorInsets = contentInsets;
// If active text field is hidden by keyboard, scroll it so it's visible
// Your application might not need or want this behavior.
CGRect aRect = self.view.frame;
aRect.size.height -= kbSize.height;
if (!CGRectContainsPoint(aRect, activeField.frame.origin)) {
CGPoint scrollPoint = CGPointMake(0.0, activeField.frame.origin.y-kbSize.height);
[scrollView setContentOffset:scrollPoint animated:YES];
}
}
非常感謝,的代碼段包含的一切,我需要:) – matehat 2013-06-28 18:39:54
你可以使用[KBKeyboardObserver(https://github.com/kam800/KBKeyboardObserver)庫來觀察鍵盤事件。 – kam800 2013-11-06 20:37:24