我的Webview下面有一个工具栏。当键盘出现时,我想在键盘顶部显示工具栏。怎么做到这一点?
答案 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
。
然后在键盘出现后,您需要计算键盘的高度并调整工具栏高度的布局约束,使其位于键盘上方。然后在键盘关闭时将其更改回来。
希望它有所帮助!