You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ag...@apache.org on 2013/02/22 19:42:51 UTC
[3/3] ios commit: [CB-2523] Add setting to shrink webview when
keyboard pops up
Updated Branches:
refs/heads/master 0b4082190 -> 95f16a6dc
[CB-2523] Add setting to shrink webview when keyboard pops up
Project: http://git-wip-us.apache.org/repos/asf/cordova-ios/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-ios/commit/8641880f
Tree: http://git-wip-us.apache.org/repos/asf/cordova-ios/tree/8641880f
Diff: http://git-wip-us.apache.org/repos/asf/cordova-ios/diff/8641880f
Branch: refs/heads/master
Commit: 8641880fae96d6709b222959d26d9e4f680e8e15
Parents: 0b40821
Author: Andrew Grieve <ag...@chromium.org>
Authored: Thu Feb 21 20:42:32 2013 -0500
Committer: Andrew Grieve <ag...@chromium.org>
Committed: Fri Feb 22 13:42:02 2013 -0500
----------------------------------------------------------------------
CordovaLib/Classes/CDVViewController.m | 42 +++++++++++++++++++++++++++
1 files changed, 42 insertions(+), 0 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/8641880f/CordovaLib/Classes/CDVViewController.m
----------------------------------------------------------------------
diff --git a/CordovaLib/Classes/CDVViewController.m b/CordovaLib/Classes/CDVViewController.m
index 59463bd..63a4521 100644
--- a/CordovaLib/Classes/CDVViewController.m
+++ b/CordovaLib/Classes/CDVViewController.m
@@ -102,6 +102,48 @@
return self;
}
+- (void)viewWillAppear:(BOOL)animated
+{
+ [super viewWillAppear:animated];
+
+ NSNotificationCenter* nc = [NSNotificationCenter defaultCenter];
+ [nc addObserver:self
+ selector:@selector(keyboardWillShowOrHide:)
+ name:UIKeyboardWillShowNotification
+ object:nil];
+ [nc addObserver:self
+ selector:@selector(keyboardWillShowOrHide:)
+ name:UIKeyboardWillHideNotification
+ object:nil];
+}
+
+- (void)viewWillDisappear:(BOOL)animated
+{
+ [super viewWillDisappear:animated];
+
+ NSNotificationCenter* nc = [NSNotificationCenter defaultCenter];
+ [nc removeObserver:self name:UIKeyboardWillShowNotification object:nil];
+ [nc removeObserver:self name:UIKeyboardWillHideNotification object:nil];
+}
+
+- (void)keyboardWillShowOrHide:(NSNotification*)notif
+{
+ if (![@"true" isEqualToString:self.settings[@"KeyboardShrinksView"]]) {
+ return;
+ }
+ BOOL showEvent = [notif.name isEqualToString:UIKeyboardWillShowNotification];
+
+ CGRect keyboardFrame = [notif.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];
+ keyboardFrame = [self.view convertRect:keyboardFrame fromView:nil];
+
+ CGRect newFrame = self.view.bounds;
+ if (showEvent) {
+ newFrame.size.height -= keyboardFrame.size.height;
+ }
+ self.webView.frame = newFrame;
+ self.webView.scrollView.contentInset = UIEdgeInsetsMake(0, 0, -keyboardFrame.size.height, 0);
+}
+
- (void)printDeprecationNotice
{
if (!IsAtLeastiOSVersion(@"5.0")) {