Как получить координаты окна в SwiftUI? - PullRequest
0 голосов
/ 03 мая 2020

Я хочу сделать фоновый просмотр параллакса, где изображение за пользовательским интерфейсом остается почти неподвижным, когда окно перемещается на экране. Чтобы сделать это в macOS, я хочу получить координаты окна. Как мне получить координаты окна?


Я спрашиваю об этом, потому что нигде не могу найти, где написано, как это сделать:

Как я перечислил, я обнаружил, что все это либо не относится к моей проблеме, либо ссылается только на координаты в окне, но не на координаты окна на экране. Некоторые упоминают способы окунуться в AppKit, но я хочу избежать этого, если это возможно.

Самое близкое, что я получил, пыталось использовать GeometryReader как это:

GeometryReader { geometry in
    Text(verbatim: "\(geometry.frame(in: .global))")
}

, но источник всегда был (0, 0), хотя размер менялся, когда я настраивал окно.


То, что я предполагал, было примерно таким:

public struct ParallaxBackground<Background: View>: View {
    var background: Background

    @Environment(\.windowFrame)
    var windowFrame: CGRect

    public var body: some View {
        background
            .offset(x: windowFrame.minX / 10,
                    y: windowFrame.minY / 10)
    }
}

, но \.windowFrame нет не реально; он не указывает на какой-либо путь к ключу на EnvironmentValues. Я не могу найти, где я мог бы получить такое значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...