Как отобразить кнопки сенсорной панели с помощью SwiftUI? - PullRequest
1 голос
/ 26 января 2020

Я пытаюсь добавить поддержку Touch Bar для SwiftUI View. Кажется, для этого есть SwiftUI API, использующий функцию .touchBar(content: () -> View) в представлениях, но документация отсутствует, и я не могу заставить свою сенсорную панель отображать что-либо.

import SwiftUI

struct ContentView: View {
    var body: some View {
        Text("Hello, World!")
            .frame(maxWidth: .infinity, maxHeight: .infinity)
            .touchBar {
                Button(action: {

                }) {
                    Text("do something")
                }
        }
    }
}

Этот код компилируется и запустить, но сенсорная панель остается пустой. Как заставить мою сенсорную панель отображать контент, используя SwiftUI (не катализатор)?

1 Ответ

1 голос
/ 26 января 2020

Справка из этого Как использовать сенсорную панель SwiftUI с NSWindow - Форумы разработчиков Apple :

Использовать модификатор focusable ()

Сенсорная панель показывает текст, когда вы добавляете модификатор .focusable() непосредственно перед модификатором .touchBar(content:).

struct ContentView: View {

    var body: some View {
        Text("Hello, World!")
            .frame(maxWidth: .infinity, maxHeight: .infinity)
            .focusable()
            .touchBar {
                Button(action: {
                    print("Perform some action")
                }) {
                    Text("do something")
                }
        }
    }
}

Touch bar image

...