Тестирование некоторых вещей на tvOS с SwiftUI. Когда я добавляю собственный стиль к кнопке, «действие» кнопки не срабатывает. В этом примере я хочу напечатать «нажато», но добавление функций также не работает.
Возможно ли также реализовать пользовательский триггер действия или что я делаю неправильно?
Для пояснения почему я хочу иметь собственный стиль кнопки.
Когда я не использую какой-либо стиль кнопок, «действие» работает, но функция «onFocusChange» никогда не вызывается. Что мне нужно!
Но .. когда я использую стиль кнопок, onFocusChange работает, но действие не выполняется .....
struct CustomButton: View {
@State private var buttonFocus: Bool = false
var body: some View {
VStack(alignment: .center){
Button(action: {
print("pressed")
})
{
Text("Save")
}
.buttonStyle(TestButtonStyle(focused: buttonFocus))
.focusable(true, onFocusChange: { (changed) in
self.buttonFocus.toggle()
})
}
}
}
Стиль кнопок:
struct TestButtonStyle: ButtonStyle {
let focused: Bool
public func makeBody(configuration: TestButtonStyle.Configuration) -> some View {
configuration.label
.foregroundColor(.white)
.background(RoundedRectangle(cornerRadius: 5).fill(Color.red))
.scaleEffect(focused ? 1.5 : 1.0)
}
}