keyboard 내리기

2025. 8. 15. 12:39·iOS/SwiftUI
반응형


⬇ SwiftUI에서 키보드 내리기

 

✅ 원리

 

부스트캠프 때, 썼던 https://hamp.tistory.com/78 살펴보면

 

UITextField와 UITextView등 키보드 입력이 필요한 UI컴포넌트가 window의 firstResponder가 됐을 때,

 

시스템은 자동으로 키보들르 보여준다.

 

 

그렇다면 반대로, firstResponder를 해제해주면 키보드는 내려간다는 의미

 

🚀 실제 사용

 

익숙한 경험으로는 키보드 입력 도중, 키보드 입력이 필요없는 공간을 누르면, keyboard가 자연스럽게 내려간다.

 

즉, Tap 이벤트 + resignFirstResponder의 조합으로 만들 수 있다는 뜻

 

import SwiftUI

public extension View {
  func registerKeyboardResign() -> some View {
    self.onTapGesture {
      UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil)
    }
  }
}

 

 

🧐 코드 분석

 

UIApplication.shared.sendAction(
    #selector(UIResponder.resignFirstResponder), // 실행할 메서드
    to: nil, // 액션을 보낼 대상 객체
    from: nil, // 보낸 주체
    for: nil // 보낼 이벤트 
)
  • to: nil이면 → UIKit이 Responder Chain을 타고 이 셀렉터를 처리할 수 있는 객체를 찾음
  • from: nil이면 특별한 보낸 주체가 없다
  • for: 이벤트 없이 단순 호출

 

🧪 결과

 


출처

반응형

'iOS > SwiftUI' 카테고리의 다른 글

TextField에서 자동 포맷적용하기  (0) 2025.08.28
TextField 커스텀 PlaceHolder 넣기  (0) 2025.08.28
스크롤 할 떄, keyboard 자연스럽게 내리기  (2) 2025.08.15
TextEditor에 placeHolder 보여주기  (3) 2025.08.14
[ThirdParty] SwiftUI-Shimmer 해석하기  (3) 2025.07.27
'iOS/SwiftUI' 카테고리의 다른 글
  • TextField에서 자동 포맷적용하기
  • TextField 커스텀 PlaceHolder 넣기
  • 스크롤 할 떄, keyboard 자연스럽게 내리기
  • TextEditor에 placeHolder 보여주기
Hamp
Hamp
남들에게 보여주기 부끄러운 잡다한 글을 적어 나가는 자칭 기술 블로그입니다.
  • Hamp
    Hamp의 분리수거함
    Hamp
  • 전체
    오늘
    어제
    • 분류 전체보기 (308) N
      • CS (30)
        • 객체지향 (2)
        • Network (7)
        • OS (6)
        • 자료구조 (1)
        • LiveStreaming (3)
        • 이미지 (1)
        • 잡다한 질문 정리 (0)
        • Hardware (2)
        • 이론 (6)
        • 컴퓨터 그래픽스 (0)
      • Firebase (3)
      • Programing Langauge (38) N
        • swift (32)
        • python (5) N
        • Kotlin (1)
      • iOS (132)
        • UIKit (37)
        • Combine (1)
        • SwiftUI (32)
        • Framework (7)
        • Swift Concurrency (22)
        • Tuist (6)
        • Setting (11)
        • Modularization (1)
        • Instruments (6)
      • PS (59)
        • 프로그래머스 (24)
        • 백준 (13)
        • LeetCode (19)
        • 알고리즘 (3)
      • Git (18)
        • 명령어 (4)
        • 이론 (2)
        • hooks (1)
        • config (2)
        • action (7)
      • Shell Script (2)
      • Linux (6)
        • 명령어 (5)
      • Spring (15) N
        • 어노테이션 (3) N
        • 튜토리얼 (11)
      • CI-CD (4)
      • Android (0)
        • Jetpack Compose (0)
      • AI (1) N
        • 이론 (1) N
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    lifecycle
    dispatch
    Swift
    IOS
    boostcamp
    CS
    protocol
    dp
    GIT
    property
    AVFoundation
    프로그래머스
    SwiftUI
    Tuist
    Spring
    투포인터
    concurrency
    백준
    dfs
    UIKit
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
Hamp
keyboard 내리기
상단으로

티스토리툴바