使用NSVisualEffectView时如何添加按钮
How to add buttons when NSVisualEffectView is used
我使用 NSVisualEffectView
创建了一个 window 来获得模糊和圆角。喜欢
问题是当我有 NSVisualEffectView
代码时,我在 window 中看不到我的按钮。如果我删除代码,则会显示该按钮。出了什么问题?
NSVisualEffectView 代码在AppDelegate.swift:
func applicationDidFinishLaunching(_ aNotification: Notification) {
// Insert code here to initialize your application
guard let window = NSApplication.shared().windows.first else { return }
let effect = NSVisualEffectView(frame: NSRect(x: 0, y: 0, width: 0, height: 0))
effect.blendingMode = .behindWindow
effect.state = .active
effect.material = .dark
effect.wantsLayer = true
effect.layer?.cornerRadius = 15.0
effect.layer?.masksToBounds = true
window.isOpaque = false
window.backgroundColor = .clear
window.contentView = effect
window.titlebarAppearsTransparent = true
window.titleVisibility = .hidden
}
我在故事板中添加了一些按钮。当我 运行 项目时,我没有看到任何按钮。
当我从 applicationDidFinishLaunching(_ aNotification: Notification)
中删除所有内容时,即 NSVisualEffectView
代码,我可以看到按钮。
谁能告诉我发生了什么事?
window
位于要添加按钮的视图上方,因此按钮位于模糊的 window 下方,因此无法看到。为什么不将 visualEffectView
添加到与按钮相同的视图中?您需要将其插入按钮下方以使按钮可见。
我想我应该只在 中纠正你,但我没有。
您正在使用情节提要,为什么要在代码中创建 NSVisualViewEffect
变量?
在右侧面板(实用程序面板)中搜索 nsvisualeffectview
,您可以在其中搜索按钮等(对象库)。
拖动它并根据您的主视图控制器调整它的大小。
要添加模糊效果和模式,请转到 "Utilities panel"
中的 "Attribites Inspector"
并设置window.backgroundColor = .clear
和window.isOpaque = false
func applicationDidFinishLaunching(_ aNotification: Notification) {
// Insert code here to initialize your application
guard let window = NSApplication.shared.windows.first else { return }
window.isOpaque = false
window.backgroundColor = .clear
}
现在您可以添加按钮、文本字段和 运行 项目。您可以看到所有添加的元素。
希望对您有所帮助!
我使用 NSVisualEffectView
创建了一个 window 来获得模糊和圆角。喜欢
问题是当我有 NSVisualEffectView
代码时,我在 window 中看不到我的按钮。如果我删除代码,则会显示该按钮。出了什么问题?
NSVisualEffectView 代码在AppDelegate.swift:
func applicationDidFinishLaunching(_ aNotification: Notification) {
// Insert code here to initialize your application
guard let window = NSApplication.shared().windows.first else { return }
let effect = NSVisualEffectView(frame: NSRect(x: 0, y: 0, width: 0, height: 0))
effect.blendingMode = .behindWindow
effect.state = .active
effect.material = .dark
effect.wantsLayer = true
effect.layer?.cornerRadius = 15.0
effect.layer?.masksToBounds = true
window.isOpaque = false
window.backgroundColor = .clear
window.contentView = effect
window.titlebarAppearsTransparent = true
window.titleVisibility = .hidden
}
我在故事板中添加了一些按钮。当我 运行 项目时,我没有看到任何按钮。
当我从 applicationDidFinishLaunching(_ aNotification: Notification)
中删除所有内容时,即 NSVisualEffectView
代码,我可以看到按钮。
谁能告诉我发生了什么事?
window
位于要添加按钮的视图上方,因此按钮位于模糊的 window 下方,因此无法看到。为什么不将 visualEffectView
添加到与按钮相同的视图中?您需要将其插入按钮下方以使按钮可见。
我想我应该只在
您正在使用情节提要,为什么要在代码中创建 NSVisualViewEffect
变量?
在右侧面板(实用程序面板)中搜索 nsvisualeffectview
,您可以在其中搜索按钮等(对象库)。
拖动它并根据您的主视图控制器调整它的大小。
要添加模糊效果和模式,请转到 "Utilities panel"
中的 "Attribites Inspector"并设置window.backgroundColor = .clear
和window.isOpaque = false
func applicationDidFinishLaunching(_ aNotification: Notification) {
// Insert code here to initialize your application
guard let window = NSApplication.shared.windows.first else { return }
window.isOpaque = false
window.backgroundColor = .clear
}
现在您可以添加按钮、文本字段和 运行 项目。您可以看到所有添加的元素。
希望对您有所帮助!