Swift-пакет, расширяющий возможности SwiftUI дополнительными представлениями, расширениями и обёртками для функций UIKit и AppKit.
siteline/swiftui-introspect
Библиотека Swift, позволяющая SwiftUI-коду обращаться к лежащему в основе представления SwiftUI объекту UIKit или AppKit и настраивать его.
- Звёзды
- 6,574
- Форки
- 420
- Открытые issues
- 16
- Последний коммит
- в прошлом месяце
Что это?
SwiftUI не предоставляет доступ ко многим свойствам лежащих в основе компонентов UIKit и AppKit. SwiftUI Introspect восполняет этот пробел: библиотека добавляет вокруг представления SwiftUI невидимые маркеры, а затем ищет в иерархии представлений между ними соответствующий экземпляр UIKit или AppKit, например UIScrollView или NSTextField. В замыкающую функцию передаётся это нативное представление, чтобы можно было изменить свойства, недоступные в SwiftUI.
Библиотека поддерживает множество элементов управления, включая List, ScrollView, Form, TextField, NavigationStack, TabView, Table, а также листы и всплывающие окна. Для каждой цели интроспекции нужно явно указать версию платформы, например .iOS(.v18), поскольку типы лежащих в основе представлений могут меняться между выпусками ОС. Авторам библиотек доступны предикаты с диапазонами версий, позволяющие учесть будущие версии.
В проекте указано, что библиотека не использует приватные API и не приводит типы представлений принудительно; если ожидаемое представление не найдено, модификатор игнорируется. В документации рекомендуется использовать библиотеку умеренно и отдавать предпочтение нативным модификаторам SwiftUI, если они доступны.
Ключевые возможности
- 01Предоставляет доступ к лежащим в основе многих элементов управления SwiftUI представлениям UIKit или AppKit.
- 02Поддерживает целевые платформы iOS, tvOS, visionOS и macOS.
- 03Для каждой цели интроспекции требует явно указать версию ОС.
- 04Предоставляет предикаты с диапазонами версий для будущих версий платформ.
- 05Позволяет разработчикам задавать собственные типы представлений для интроспекции, в том числе для неподдерживаемых элементов.
Сценарии использования
- Изменение поведения при отскоке или фона у List либо ScrollView в SwiftUI.
- Настройка внешнего вида TextField или SecureField за пределами возможностей модификаторов SwiftUI.
- Настройка панели навигации в NavigationStack или NavigationView.
- Сохранение ссылки на нативное представление UIKit для более тонкого управления в приложении для iOS.
Быстрый старт
- 1
Добавьте пакет SwiftUIIntrospect в зависимости Swift Package Manager
.package(url: "https://github.com/siteline/swiftui-introspect", from: "27.0.0"), - 2
Добавьте продукт SwiftUIIntrospect в зависимости целевого модуля
.product(name: "SwiftUIIntrospect", package: "swiftui-introspect"),
Что важно знать
- Для интроспекции необходимо явно включить каждую версию ОС (например, .iOS(.v18)), поскольку базовые типы UIKit/AppKit могут меняться между основными версиями.
- Поддерживаются только типы представлений, перечисленные в README. Многие представления SwiftUI, например Text и Image, нельзя интроспектировать.
В подборках
Темы
Частые вопросы
- Что такое swiftui-introspect?
- Библиотека Swift, позволяющая SwiftUI-коду обращаться к лежащему в основе представления SwiftUI объекту UIKit или AppKit и настраивать его. SwiftUI не предоставляет доступ ко многим свойствам лежащих в основе компонентов UIKit и AppKit. SwiftUI Introspect восполняет этот пробел: библиотека добавляет вокруг представления SwiftUI невидимые маркеры, а затем ищет в иерархии представлений между ними соответствующий экземпляр UIKit или AppKit, например UIScrollView или NSTextField. В замыкающую функцию передаётся это нативное представление, чтобы можно было изменить свойства, недоступные в SwiftUI.
- swiftui-introspect можно использовать бесплатно? Какая у него лицензия?
- swiftui-introspect распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- swiftui-introspect всё ещё поддерживается?
- Обновлялся за последние 6 месяцев. Последний коммит в swiftui-introspect — 7 окт. 2026 г..
- Для чего можно использовать swiftui-introspect?
- Изменение поведения при отскоке или фона у List либо ScrollView в SwiftUI. Настройка внешнего вида TextField или SecureField за пределами возможностей модификаторов SwiftUI. Настройка панели навигации в NavigationStack или NavigationView. Сохранение ссылки на нативное представление UIKit для более тонкого управления в приложении для iOS.
- Как установить swiftui-introspect?
- Добавьте пакет SwiftUIIntrospect в зависимости Swift Package Manager: .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 проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Более 500 нативных расширений Swift с полезными методами для типов стандартной библиотеки, Foundation и UIKit/AppKit.
Библиотека Swift для разработки приложений на платформах Apple с согласованным управлением состоянием, композиционными функциями, контролем побочных эффектов и широкими возможностями тестирования.
Удобная HTTP-библиотека для Swift на основе URLSession: цепочки запросов, кодирование данных, загрузка файлов и проверка ответов.
Swift-пакет для добавления в приложения macOS глобальных настраиваемых пользователем клавиатурных сочетаний с готовым интерфейсом для их записи.
CLI на Swift, который преобразует логи сборки и тестов Xcode в формате xcactivitylog в JSON, HTML, трассировки Chrome и отчёты об ошибках.