SwiftUI KeyboardObserving を使用して TextField がキーボードに隠れる問題に対応する

入力したい TextField にタッチする→表示されたキーボードにより TextField が隠れる→入力しづらい

という問題。

これは Objective-C 時代からあり、よく対処されてきた問題なのだが SwiftUI の場合は、
GitHub にある KeyboardObserving という OSS で対応できそうだ。

デモ動作はこんなかんじ。

導入のしかた

CocoaPods / Swift Package Manager に対応している。

Xcode を使用して [Project]->[Swift Packages] から登録すると楽だろう。

導入が終わったあとは

import KeyboardObserving

して

struct YourView: View {

  var body: some View {
    VStack {
      // Your Content Here
    }
    .keyboardObserving()
  }
}

こんな感じに .keyboardObserving() を Superview に追加することで完了。

これで動作を試すと、キーボードの上に TextField が来るように自動で調整される。
とても簡単に導入できた、すごい。

ちなみに Keyboard KeyboardObservingView というクラスを使う方法もあるらしく、くわしくはプロジェクトの README を参照すること。