キーボードを手元の操作で出し入れしたいときに
ツールバーをちょいと上にスワイプするとキーボード出現。
ちゃッと下にスワイプするとキーボード収納。
ちなみに、この記事ではツールバーを使っていますが、
スワイプ検知を関連付けるのはツールバーじゃなくても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 さんのやりとりから知りました。 |
|---|