SwiftUI keyboardShortcut не работает, если у Button есть buttonStyle

Мой код:

                      Button(action: {
                    AudioServicesPlaySystemSound(1026)
                    isActive.toggle()
                }){
                    HStack{
                        Image(systemName: "trash")
                        Text("delete")
                    }
                }
                .foregroundColor(.red)
                .font(.body)
                .keyboardShortcut("b",modifiers: [])

на этом этапе keyboardShortcut работает, но когда я добавляю buttonStyle, keyboardShortcut не работает, код с buttonStyle:

                      Button(action: {
                    AudioServicesPlaySystemSound(1026)
                    isActive.toggle()
                }){
                    HStack{
                        Image(systemName: "trash")
                        Text("delete")
                    }
                }
                .buttonStyle(PlainButtonStyle())
                .foregroundColor(.red)
                .font(.body)
                .keyboardShortcut("b",modifiers: [])

2 ответа

у меня хорошо работает на macos 12.beta, xcode 13.beta, target ios 14.7 и MacCatalyst 12. Протестировано в приложении MacCatalyst для macOS 12. Какую систему вы используете?

      import SwiftUI

@main
struct TestApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}
struct ContentView: View {
    var body: some View {
        Button(action: {
            print("---> button clicked")
        }) {
            HStack{
                Image(systemName: "trash")
                Text("delete")
            }
        }
        .buttonStyle(PlainButtonStyle())
        .foregroundColor(.red)
        .font(.body)
        .keyboardShortcut("b",modifiers: [])
    }
}

У меня была такая же проблема, но если я использую BorderlessButtonStyle()вместо PlainButtonStyle, работает на меня.

Другие вопросы по тегам