質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

7953閲覧

【SwiftUI】キーボード出現によるViewの動きを制限したい

Jene

総合スコア13

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2021/09/12 01:47

前提・実現したいこと

SwiftUIでアプリ開発を行なっております。
TextFieldに文字入力時、キーボードが出現すると思いますが、その際View全体がキーボードに被らないように自動(特に設定していない)で上に押し上がります。
今回はこの挙動をなくし、Viewがキーボードに隠れるような形にしたいです。

発生している問題・エラーメッセージ

##↓イメージ画像になります。↓##
#①
イメージ説明
#②
イメージ説明

該当のソースコード

これといって特別なことはしておりませんが、記載致します。

Swift

1import SwiftUI 2struct ContentView: View { 3 @State var text: String = "" 4 var body: some View { 5 VStack{ 6 Spacer() 7 Text("キーボードが出現すると\nキーボードがViewに被らないように\nView全体が押し上げられてしまう。") 8 .padding(.all) 9 TextField("Text", text: $text) 10 .padding(.horizontal) 11 .textFieldStyle(RoundedBorderTextFieldStyle()) 12 Spacer() 13 Image(systemName: "rectangle.and.pencil.and.ellipsis") 14 .font(.system(size: 100)) 15 } 16 } 17} 18 19struct ContentView_Previews: PreviewProvider { 20 static var previews: some View { 21 ContentView() 22 } 23} 24

試したこと

検索したのですが、皆様「キーボードに隠れないようにする」ということはされているのですが、逆パターンが見つかりませんでした。
知見のある方ご教授頂けますと幸いです。よろしくお願い致します。

補足情報(FW/ツールのバージョンなど)

Xcode 12.5.1
iOS 14.0向け

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

キーボードは SafeArea を基準にビューを伸縮させています。iOS 14 から View.ignoresSafeArea() が追加されているので、これを利用してキーボードの表示に対し任意のビューを SafeArea から除外できるようになりました。

swift

1var body: some View { 2 VStack { 3 ... 4 } 5 .ignoresSafeArea(.keyboard, edges: .bottom) 6}

投稿2021/09/12 02:28

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Jene

2021/09/12 10:04 編集

ycv57u6yさん、ありがとうございます。 無事解決できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問