SwiftUI의 빈틈을 메우는 뷰, 확장 기능, UIKit 및 AppKit 기능용 래퍼를 제공하는 Swift 패키지입니다.
siteline/swiftui-introspect
SwiftUI 코드에서 SwiftUI 뷰의 기반이 되는 UIKit 또는 AppKit 뷰에 접근해 사용자화할 수 있는 Swift 라이브러리입니다.
- 스타
- 6,574
- 포크
- 420
- 열린 이슈
- 16
- 마지막 커밋
- 지난달
어떤 프로젝트인가요?
SwiftUI는 기반이 되는 UIKit 및 AppKit 구성 요소의 여러 속성을 노출하지 않습니다. SwiftUI Introspect는 SwiftUI 뷰 주위에 보이지 않는 마커 뷰를 추가한 다음, 두 마커 사이의 뷰 계층 구조를 검색해 UIScrollView나 NSTextField 같은 해당 UIKit 또는 AppKit 인스턴스를 찾습니다. 클로저에는 이 네이티브 뷰가 전달되므로 SwiftUI에서 제공하지 않는 속성을 변경할 수 있습니다.
이 라이브러리는 List, ScrollView, Form, TextField, NavigationStack, TabView, Table과 시트 및 팝오버를 비롯해 다양한 컨트롤을 지원합니다. 기반 뷰 유형은 OS 릴리스마다 달라질 수 있으므로, 각 인트로스펙션 대상에 .iOS(.v18)처럼 플랫폼 버전을 명시해야 합니다. 향후 버전까지 지원하려는 라이브러리 작성자를 위해 범위 기반 버전 조건자도 제공됩니다.
프로젝트 설명에 따르면 비공개 API를 사용하거나 뷰를 강제 형변환하지 않으며, 예상한 뷰를 찾지 못하면 해당 modifier는 무시됩니다. 문서에서는 네이티브 SwiftUI modifier가 있다면 이를 우선 사용하고, 이 라이브러리는 꼭 필요한 경우에만 사용하라고 권장합니다.
핵심 기능
- 01다양한 SwiftUI 컨트롤의 기반 UIKit 또는 AppKit 뷰에 접근합니다.
- 02iOS, tvOS, visionOS 및 macOS 플랫폼을 지원합니다.
- 03각 인트로스펙션 대상에 OS 버전을 명시적으로 지정해야 합니다.
- 04향후 플랫폼 버전에 사용할 수 있는 범위 기반 버전 조건자를 제공합니다.
- 05지원되지 않는 요소를 위한 사용자 지정 인트로스펙션 대상 뷰 유형을 정의할 수 있습니다.
활용 사례
- SwiftUI List 또는 ScrollView의 바운스 동작이나 배경을 변경합니다.
- SwiftUI modifier만으로는 어려운 TextField 또는 SecureField의 외관을 사용자화합니다.
- NavigationStack 또는 NavigationView의 내비게이션 바를 꾸밉니다.
- iOS 앱에서 고급 제어를 위해 네이티브 UIKit 뷰의 참조를 유지합니다.
빠른 시작
- 1
Swift Package Manager 종속성에 SwiftUIIntrospect 패키지를 추가합니다
.package(url: "https://github.com/siteline/swiftui-introspect", from: "27.0.0"), - 2
타깃 종속성에 SwiftUIIntrospect 제품을 추가합니다
.product(name: "SwiftUIIntrospect", package: "swiftui-introspect"),
사용 전 알아둘 점
- 기반이 되는 UIKit/AppKit 타입은 메이저 버전 간에 변경될 수 있으므로, 인트로스펙션을 사용하려면 각 OS 버전(예: .iOS(.v18))을 개별적으로 옵트인해야 합니다.
- README에 나열된 뷰 타입만 지원되며, Text와 Image 같은 많은 SwiftUI 뷰는 인트로스펙션할 수 없습니다.
포함된 컬렉션
토픽
자주 묻는 질문
- swiftui-introspect은(는) 무엇인가요?
- SwiftUI 코드에서 SwiftUI 뷰의 기반이 되는 UIKit 또는 AppKit 뷰에 접근해 사용자화할 수 있는 Swift 라이브러리입니다. SwiftUI는 기반이 되는 UIKit 및 AppKit 구성 요소의 여러 속성을 노출하지 않습니다. SwiftUI Introspect는 SwiftUI 뷰 주위에 보이지 않는 마커 뷰를 추가한 다음, 두 마커 사이의 뷰 계층 구조를 검색해 UIScrollView나 NSTextField 같은 해당 UIKit 또는 AppKit 인스턴스를 찾습니다. 클로저에는 이 네이티브 뷰가 전달되므로 SwiftUI에서 제공하지 않는 속성을 변경할 수 있습니다.
- swiftui-introspect은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- swiftui-introspect은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- swiftui-introspect은(는) 아직 유지보수되고 있나요?
- 6개월 이내 업데이트. swiftui-introspect의 마지막 커밋은 2026년 10월 7일입니다.
- swiftui-introspect은(는) 어디에 사용할 수 있나요?
- SwiftUI List 또는 ScrollView의 바운스 동작이나 배경을 변경합니다. SwiftUI modifier만으로는 어려운 TextField 또는 SecureField의 외관을 사용자화합니다. NavigationStack 또는 NavigationView의 내비게이션 바를 꾸밉니다. iOS 앱에서 고급 제어를 위해 네이티브 UIKit 뷰의 참조를 유지합니다.
- swiftui-introspect는 어떻게 설치하나요?
- Swift Package Manager 종속성에 SwiftUIIntrospect 패키지를 추가합니다: .package(url: "https://github.com/siteline/swiftui-introspect", from: "27.0.0"), 타깃 종속성에 SwiftUIIntrospect 제품을 추가합니다: .product(name: "SwiftUIIntrospect", package: "swiftui-introspect"),
- swiftui-introspect은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/siteline/swiftui-introspect
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
일관된 상태 관리와 조합 가능한 기능, 사이드 이펙트 제어, 강력한 테스트 지원을 제공하는 Apple 플랫폼 앱 개발용 Swift 라이브러리입니다.
URLSession을 기반으로 체이닝 가능한 요청, 인코딩, 업로드, 다운로드, 응답 검증을 제공하는 Swift용 우아한 HTTP 네트워킹 라이브러리입니다.
macOS 앱에 사용자가 직접 설정할 수 있는 전역 키보드 단축키와 바로 사용할 수 있는 녹화 UI를 추가하는 Swift 패키지입니다.