統計情報(30日間)


最新情報をツイート


人気の投稿

キーボードアクセサリライブラリ

このエントリーをはてなブックマークに追加

キーボードの上のこういうやつが簡単に付けられるライブラリ。


サンプルコードよりアクセサリ追加のコード。まずインスタンスを作ってテキストビューへ追加する。

// Create the Quayboard bar
JSMQuayboardBar *textViewAccessory = [[JSMQuayboardBar alloc] initWithFrame:CGRectZero];
textViewAccessory.delegate = self;
self.textView.inputAccessoryView = textViewAccessory;

次に表示したいキーボードの文字を登録する。
// Add some keys whose values match their labels
[textViewAccessory addKeyWithValue:@"1"];
[textViewAccessory addKeyWithValue:@"2"];
[textViewAccessory addKeyWithValue:@"3"];
[textViewAccessory addKeyWithValue:@"4"];
[textViewAccessory addKeyWithValue:@"5"];
 
// Maybe a key whose labels and values aren't the same
[textViewAccessory addKeyWithTitle:@"⇥" andValue:@"\t"];

最後にキーボード関連の通知に追加。
// Deal with events and changes
[NSNotificationCenter.defaultCenter addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
[NSNotificationCenter.defaultCenter addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];

デモの右にあるようなカスタムキーの作り方。
// Or build and add a custom key
JSMQuayboardButton *customKey = [[JSMQuayboardButton alloc] initWithFrame:CGRectZero];
customKey.title = @"▾";
[customKey addTarget:self action:@selector(clearTextView:) forControlEvents:UIControlEventTouchUpInside];
[textViewAccessory addKey:customKey];

キーボードイベントはデリゲートで受け取れる。
@protocol JSMQuayboardBarDelegate <NSObject>
@optional
- (void)quayboardBar:(JSMQuayboardBar *)quayboardBar keyWasPressed:(JSMQuayboardButton *)key;
@end

簡単なのがいい。使えそう。

(追記)日本語キーボードだと候補表示の時にテキストビューが消えてしまった。一工夫必要?




Leave a Reply