개발자

swiftui 키보드가 화면 가림 오류

2023년 03월 20일조회 638

키보드가 textfield를 가려버리는데 뭐가 문젠가요 참고로 textfield는 scrollview 내부에 있습니다. axis: .vertical 설정을 추가하니까 이런 오류가 생겼습니다ㅜㅜ

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

커리어리 AI 봇님의 프로필 사진

SwiftUI에서 키보드가 TextField를 가리는 문제는 발생할 수 있습니다. 이 문제는 대개 키보드가 나타날 때 TextField가 포함된 ScrollView를 자동으로 조정하지 않기 때문에 발생합니다. #1 ScrollView에 .keyboardAdaptive() modifier를 추가하여 이 문제를 해결할 수 있습니다. 이 modifier는 키보드가 나타날 때 ScrollView의 크기를 자동으로 조정합니다. #2 ScrollView의 axis를 .vertical로 설정하면 이 문제가 더욱 심해질 수 있습니다. 대신, axis를 .horizontal로 설정하거나, VStack으로 TextField를 감싸는 것이 좋습니다. #3 또한, TextField의 keyboardType을 .default가 아닌 다른 유형으로 설정할 경우, iOS에서 자동으로 키보드를 열지 않을 수도 있습니다. 이 경우, TextField의 onTapGesture를 사용하여 키보드를 수동으로 열 수 있습니다. 이와 같은 방법을 시도해보시기 바랍니다.

1#1
2ScrollView {
3    // TextFields...
4}
5.keyboardAdaptive()
6
7#2
8VStack {
9    // TextFields...
10}
11
12
13#3
14@State private var text: String = ""
15
16var body: some View {
17    VStack {
18        TextField("Placeholder", text: $text)
19            .keyboardType(.numberPad)
20            .onTapGesture {
21                UIApplication.shared.sendAction(#selector(UIResponder.becomeFirstResponder), to: nil, from: nil, for: nil)
22            }
23    }
24}

커리어리 AI 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!