如何在UIWebView上的键盘上方显示工具栏

时间:2016-09-01 12:44:16

标签: ios xamarin.ios

我的Webview下面有一个工具栏。当键盘出现时,我想在键盘顶部显示工具栏。怎么做到这一点?

2 个答案:

答案 0 :(得分:1)

以下是实现您想要的基本架构:

#import "ViewController.h"

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIWebView *webView;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    [[NSNotificationCenter defaultCenter] addObserver: self
                                             selector: @selector(keyboardDidShowNotification:)
                                                 name: UIKeyboardDidShowNotification
                                               object: nil];

    [[NSNotificationCenter defaultCenter] addObserver: self
                                             selector: @selector(keyboardDidHideNotification:)
                                                 name: UIKeyboardDidHideNotification
                                               object:nil];
}


-(void) keyboardDidShowNotification: (NSNotification * ) notification {

    NSDictionary *dict   = [notification userInfo];
    CGRect keyboardFrame = [dict[UIKeyboardFrameEndUserInfoKey] CGRectValue];

    self.view.frame = CGRectMake(0,0,
                                 self.view.frame.size.width,
                                 keyboardFrame.origin.y);
}


-(void) keyboardDidHideNotification: (NSNotification * ) notification {
    self.view.frame = [UIApplication sharedApplication].keyWindow.frame;
}

-(void) dealloc{
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

@end

希望它有所帮助。

答案 1 :(得分:0)

我没有代码示例,但在文字中我可以提示如何做到这一点。 您需要为工具栏和屏幕底部(或放置的任何位置)之间的高度创建NSLayoutConstraint。 然后在键盘出现后,您需要计算键盘的高度并调整工具栏高度的布局约束,使其位于键盘上方。然后在键盘关闭时将其更改回来。

希望它有所帮助!