MacCatalyst / SwiftUI Touch Bar - PullRequest
       47

MacCatalyst / SwiftUI Touch Bar

3 голосов
/ 10 января 2020

как добавить поддержку сенсорной панели в приложениях Catalyst-Apps, написанных на SwiftUI?

Например, если я хочу отобразить кнопку в представлении:

import SwiftUI

struct ContentView: View {
    var body: some View {
        VStack{
        #if targetEnvironment(macCatalyst)
            Text("macOS")
            .frame(maxWidth: .infinity, maxHeight: .infinity)
            .focusable()
            .touchBar {
                Button(action: {
                    print("tapped")
                }) {
                    Text("TestButton")
                }
            }
        #endif
        Text("iOS")
        }
    }
}

Если я использую в приложении MacOS это работает, но если я использую его в Catalyst и добавляю targetEnvironment, возникает ошибка:

'focusable (_: onFocusChange :)' недоступен в iOS и 'touchBar (content: ) 'недоступен в iOS

Спасибо за помощь.

1 Ответ

0 голосов
/ 11 марта 2020

Изменить

#if targetEnvironment(macCatalyst)

на

#if os(macOS)

macCatalyst должно по-прежнему находиться в среде для iOS Ma c приложений Catalyst, поэтому необходимо вручную проверить ОС надежным.

...