var body: some View {
ZStack {
...
}
#if !os(iOS) /// -> Unexpected platform condition (expected 'os', 'arch', or 'swift')
.focusable()
#endif
}
Как же быть? Выход есть, его не может не быть! Чтобы не повторяться в коде, достаточно сделать небольшой хэлпер с помощью протокола ViewModifier, в примитивном виде он может быть таким:
struct FocusableView: ViewModifier {
func body(content: Content) -> some View {
#if os(iOS)
return content
#else
return content
.focusable()
#endif
}
}
Теперь ваш оригинальный код компонента не требуется дублировать или оборачивать в излишние проверки:
var body: some View {
ZStack {
...
}
.modifier(FocusableView())
}
Точно такой же подход я практикую со всеми другими модификаторами, доступными в зависимости от платформы. Легко и просто!
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.