iOS15から使用できるkeyboardに表示するtoolbarは、
他の位置とは異なり基本的にどこでも使用できます。
しかし表示されないパターンがありましたのでメモを残しておきます。
表示不可のパターン
SceneDelegateを使用しNavigationView外にあるパターンです。
かなり限定的なパターンなので新規開発では滅多に無いと思います。
しかし、SwiftUIの2.0系からはありませんが、
それ以前からの場合はSceneDelegateを継続して使用している可能性があります。
また、私の場合はどうしてもHomeIndicatorAutoHiddenを使用したかった為、
やむを得ずSceneDelegateを追加して使用した為引っ掛かりました。
対応表
toolbarの使用可否は以下の様になっています。
NavigationView外 | NavigationView内 | |
SceneDelegate無し (WindowGroup下) | keyboardのみ可 | 全て可 |
SceneDelegate有り (WindowGroup外) | 全て不可 | 全て可 |
原因の考察
どうやらWindowGroup下にあるかNavigationView下にあるのがtoolbarが動作する条件のようです。
SceneDelegateを使用した場合はWindowGroup下に無いので動作しません。
NavigationViewがあればSceneDelegateを使用しても動作します。
なお他の位置に表示する場合はNavigationViewが必須なので問題ありません。
コメント