Un paquete de Swift que completa las carencias de SwiftUI con vistas, extensiones y wrappers para funciones de UIKit y AppKit.
siteline/swiftui-introspect
Una biblioteca de Swift que permite acceder desde SwiftUI a la vista subyacente de UIKit o AppKit para personalizarla.
- Estrellas
- 6,574
- Forks
- 420
- Issues abiertos
- 16
- Último commit
- el mes pasado
¿Qué es?
SwiftUI no expone muchas propiedades de sus componentes subyacentes de UIKit y AppKit. SwiftUI Introspect cubre esa carencia añadiendo vistas marcadoras invisibles alrededor de una vista de SwiftUI y buscando entre ellas, en la jerarquía de vistas, la instancia correspondiente de UIKit o AppKit, como un UIScrollView o un NSTextField. El closure recibe esa vista nativa para que puedas cambiar propiedades que SwiftUI no ofrece.
La biblioteca es compatible con muchos controles, como List, ScrollView, Form, TextField, NavigationStack, TabView, Table, además de sheets y popovers. Cada elemento de introspección requiere especificar explícitamente una versión de plataforma, como .iOS(.v18), porque los tipos de vista subyacentes pueden cambiar entre versiones del sistema operativo. Los autores de bibliotecas pueden usar predicados basados en rangos de versiones para admitir versiones futuras.
El proyecto afirma que no usa APIs privadas ni fuerza el tipo de las vistas; si la vista esperada no está, se ignora el modificador. La documentación recomienda usarlo con moderación, ya que es preferible recurrir a los modificadores nativos de SwiftUI cuando estén disponibles.
Funciones clave
- 01Permite acceder a la vista subyacente de UIKit o AppKit de muchos controles de SwiftUI.
- 02Es compatible con plataformas iOS, tvOS, visionOS y macOS.
- 03Exige indicar explícitamente la versión del sistema operativo para cada elemento de introspección.
- 04Ofrece predicados basados en rangos de versiones para admitir futuras versiones de las plataformas.
- 05Permite definir tipos de vistas introspectables personalizados para elementos no compatibles.
Casos de uso
- Cambiar el comportamiento de rebote o el fondo de un List o ScrollView de SwiftUI.
- Personalizar la apariencia de un TextField o SecureField más allá de lo que permiten los modificadores de SwiftUI.
- Dar estilo a la barra de navegación de un NavigationStack o NavigationView.
- Conservar una referencia a una vista nativa de UIKit para tener un control avanzado en una app de iOS.
Inicio rápido
- 1
Añade el paquete SwiftUIIntrospect a las dependencias de Swift Package Manager
.package(url: "https://github.com/siteline/swiftui-introspect", from: "27.0.0"), - 2
Añade el producto SwiftUIIntrospect a las dependencias del target
.product(name: "SwiftUIIntrospect", package: "swiftui-introspect"),
Antes de usarlo
- La introspección requiere habilitarse para cada versión del sistema operativo (por ejemplo, .iOS(.v18)), ya que los tipos subyacentes de UIKit/AppKit pueden cambiar entre versiones principales.
- Solo se admiten los tipos de vista que aparecen en el README, y muchas vistas de SwiftUI, como Text e Image, no se pueden introspeccionar.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es swiftui-introspect?
- Una biblioteca de Swift que permite acceder desde SwiftUI a la vista subyacente de UIKit o AppKit para personalizarla. SwiftUI no expone muchas propiedades de sus componentes subyacentes de UIKit y AppKit. SwiftUI Introspect cubre esa carencia añadiendo vistas marcadoras invisibles alrededor de una vista de SwiftUI y buscando entre ellas, en la jerarquía de vistas, la instancia correspondiente de UIKit o AppKit, como un UIScrollView o un NSTextField. El closure recibe esa vista nativa para que puedas cambiar propiedades que SwiftUI no ofrece.
- ¿swiftui-introspect es gratuito? ¿Qué licencia tiene?
- swiftui-introspect es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿swiftui-introspect sigue mantenido?
- Actualizado en los últimos 6 meses. El último commit de swiftui-introspect fue el 7 oct 2026.
- ¿Para qué puedo usar swiftui-introspect?
- Cambiar el comportamiento de rebote o el fondo de un List o ScrollView de SwiftUI. Personalizar la apariencia de un TextField o SecureField más allá de lo que permiten los modificadores de SwiftUI. Dar estilo a la barra de navegación de un NavigationStack o NavigationView. Conservar una referencia a una vista nativa de UIKit para tener un control avanzado en una app de iOS.
- ¿Cómo se instala swiftui-introspect?
- Añade el paquete SwiftUIIntrospect a las dependencias de Swift Package Manager: .package(url: "https://github.com/siteline/swiftui-introspect", from: "27.0.0"), Añade el producto SwiftUIIntrospect a las dependencias del target: .product(name: "SwiftUIIntrospect", package: "swiftui-introspect"),
- ¿Dónde consigo swiftui-introspect?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/siteline/swiftui-introspect
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Colección de más de 500 extensiones nativas de Swift que añaden métodos prácticos a tipos de la biblioteca estándar, Foundation y UIKit/AppKit.
Biblioteca de Swift para crear apps en plataformas Apple con gestión de estado coherente, funcionalidades componibles, control de efectos secundarios y sólidas herramientas de prueba.
Elegante biblioteca de networking HTTP para Swift, basada en URLSession, con solicitudes encadenables, codificación, cargas, descargas y validación de respuestas.
Paquete de Swift para añadir atajos de teclado globales personalizables por el usuario a apps de macOS, con una interfaz de grabación lista para usar.
Una CLI en Swift que convierte los logs de compilación y pruebas xcactivitylog de Xcode en JSON, HTML, trazas de Chrome e informes de incidencias.