キーボードを手元の操作で出し入れしたいときに
ツールバーをちょいと上にスワイプするとキーボード出現。
ちゃッと下にスワイプするとキーボード収納。
ちなみに、この記事ではツールバーを使っていますが、
スワイプ検知を関連付けるのはツールバーじゃなくてもOKです。
1.スワイプ時に呼び出すメソッドを定義
スワイプ時に呼び出すメソッドを定義します。
(今回は単にUISearchBar にフォーカスをあてたり外したりするだけ。)
// 上方向スワイプ時の処理 - (void)swipeUpKeyboard:(id)sender { [self.searchBar becomeFirstResponder]; // 例)サーチバーにフォーカス } // 下方向スワイプ時の処理 - (void)swipeDownKeyboard:(id)sender { [self.searchBar resignFirstResponder]; // 例)サーチバーのフォーカスを外す }
2.スワイプ方向に応じて処理を指定
viewDidLoad でツールバーにスワイプ方向に応じて処理の呼び出しを設定。
- (void)viewDidLoad { [super viewDidLoad]; // ツールバー上スワイプ UISwipeGestureRecognizer* toUpSwipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeUpKeyboard:)]; // 上スワイプ時処理を呼び出し toUpSwipeGesture.direction = UISwipeGestureRecognizerDirectionUp; [self.toolBar addGestureRecognizer:toUpSwipeGesture]; // ツールバー下スワイプ UISwipeGestureRecognizer* toDownSwipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeDownKeyboard:)]; // 下スワイプ時処理を呼び出し toDownSwipeGesture.direction = UISwipeGestureRecognizerDirectionDown; [self.toolBar addGestureRecognizer:toDownSwipeGesture]; }
3.キーボードの表示/収納を検知させる
ツールバーの位置はキーボードのタイプに応じて変わります。
viewWillAppear にNSNotificationCenter を設置。
キーボードの表示/収納を検知させて、ツールバーの位置を調整。
詳細は以下の過去記事を参照のこと。
【参考】
UIKeyboardDidHideNortification でキーボードの高さを取得しても、高さはゼロではない。 | 極上の人生
ちなみにTwitter での会話がきっかけ
とても便利に使わせて頂いているQuicka のアップデートがありまして。
その際にQuicka の作者@rakuishi07 さんとした会話が今回の記事のきっかけです。
「たしかモレスキンに書いていたな…」と。 *01ちなみに私はこれを@frnk さんと@isloop さんのやりとりから知りました。
Quicka 1.2(¥85)
カテゴリ: 仕事効率化, ユーティリティ
販売元: rakuishi – KOICHIRO OCHIISHI(サイズ: 0.1 MB)
全てのバージョンの評価: (34件の評価)
FastEver – 素早く簡単にEvernoteにメモ 1.9.4(¥85)
カテゴリ: 仕事効率化, ユーティリティ
販売元: rakko entertainment – rakko entertainment(サイズ: 1.3 MB)
全てのバージョンの評価: (1,457件の評価)
脚注
↩01 | ちなみに私はこれを@frnk さんと@isloop さんのやりとりから知りました。 |
---|