2016-09-01 10 views
0

私は以下のツールバーでWebviewを持っています。キーボードが表示されたら、キーボードの上にツールバーを表示します。これを達成する方法は?UIWebViewのキーボード上にツールバーを表示するには

+0

レイアウトをどのように定義するかによって異なります。自動レイアウトを使用している場合は、ツールバーの下部をメインビューの一番下に固定するという制約があると思います。キーボードが現れたら、この制約の定数を変更することができます。純粋なフレームを使用している場合は、キーボードが表示されたらツールバーのyの原点を変更することができます。 キーボードの表示/非表示を検出するには、次を参照してください:http://stackoverflow.com/a/4374515/3844377 – Randy

+0

私はAutolayoutを使用しています。キーボードが表示されているときに制約を変更する方法をガイドできますか? – Signcodeindie

+1

[ツールバーの上にツールバーを追加する方法]の複製がありますか?(http://stackoverflow.com/questions/23904848/how-to-add-toolbar-above-keyboard) –

答えて

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 

はそれがお役に立てば幸いです。

0

私はコードサンプルを持っていませんが、言葉で言えば、それを行うヒントを与えることができます。 ツールバーと画面の下部(または配置されている場所)の間の高さには、NSLayoutConstraintを作成する必要があります。 キーボードが表示されたら、キーボードの高さを数え、キーボードの上になるようにツールバーの高さのレイアウト制約を調整する必要があります。キーボードを閉じたときに元に戻します。

希望すると助かります!

関連する問題