【Swift】カスタムキーボードで削除ボタンを実装する


カスタムキーボードで、削除ボタン(バックスペースボタン)を実装しようといろいろ調べてみると、単純にaddTargetで削除処理を呼び出せばいいというわけではなく、削除ボタンを押し続けた際の動きなどいろいろ考慮しないといけないようで、少しSwift初心者にはハードルが高そうだ。

ネット上にいいサンプルコードがないか探してみたところ、GitHubにうってつけのコードを発見。

https://github.com/archagon/tasty-imitation-keyboard

英語キーボードを全てコードで実装しているらしい(すごい)。各アイコンもベジエ曲線などを使いを見事に表現している。

とりあえず、削除の処理の部分のみを抜粋し、自分のプロジェクトに適用してみる。

※全てKeyboardViewController内に記述。

まずは各種プロパティを定義。

次にdeinitを。理由はよくわからないが、NSNotificationCenterの解除はdeinitで行うらしい。

次に、viewDidLoad内で、backspaceButtonをAutoLayoutを使ってviewに設置する。

最後に各種メソッドを定義。

これで、ビルドすれば「削除」と書かれたボタンが右下に設置され、タップすると削除処理が実行されるだろう。
とりあえずシミュレータ上ではうまく動いているようだ。


投稿者: しんじ

ベトナムでオフショア開発会社経営中 www.bit-vietnam.com 。サービス開発が趣味。web系は主にPHPで、スマホアプリはswiftで。最近はエンジニア向けの英語勉強webアプリ エングリッシュ e-lish.io を作りました。