#swift #macos #swiftui
#swift #macos #swiftui
Вопрос:
Я пытаюсь сделать так, чтобы мой заголовок и фон исчезли.
Я использую приведенный ниже код для этой цели, но у него есть 2 большие проблемы с ним:
- Во-первых, все еще существует некоторая тень от заголовка.
- Во-вторых, когда я запускаю свой код, в течение некоторого короткого времени (около 0,1-0,2 секунды) отображается окно с фоном и заголовком, и как только NotificationCenter отправляет уведомление, оно начинает работать.
Как я могу решить эту проблему?
@main
struct Work_Space_macOSApp: App {
var body: some Scene {
WindowGroup {
ContentView()
.onReceive(NotificationCenter.default.publisher(for: NSApplication.willUpdateNotification), perform: { _ in
makeWindow()
})
}
}
}
struct ContentView: View {
var body: some View {
Circle()
.fill(Color.black)
}
}
func makeWindow() {
for window in NSApplication.shared.windows {
window.titleVisibility = .hidden
window.titlebarAppearsTransparent = true
window.backgroundColor = NSColor.clear
window.standardWindowButton(NSWindow.ButtonType.zoomButton)!.isHidden = true
window.standardWindowButton(NSWindow.ButtonType.closeButton)!.isHidden = true
window.standardWindowButton(NSWindow.ButtonType.miniaturizeButton)!.isHidden = true
}
}
Комментарии:
1. С «призрачной» строкой заголовка можно справиться, установив
window.hasShadow = false
вmakeWindow
функции.2. @tromgy: это не решает проблему.
3. Вы все еще видите тень заголовка?
4. Да, конечно. Вы тестировали свой код?
5. Конечно, тень исчезла из строки заголовка, а также из круга: imgur.com/a/hnpQqEF macOS Big Sur 11.6, XCode 13.1