我想在我的mac上创建一个osx / cocoa应用程序,它做了一件非常简单的事情:在我的mac上显示一个没有背景的文本字符串。最终,这将是一个计时器,在其他窗口的顶部显示为叠加,而不会过于干扰。
我尝试在window.backgroundColor = NSColor(red: 1.0, green:0.5, blue:0.5, alpha: 0.5)
中设置applicationDidFinishLaunching
(请参阅alpha为0.5),但这并没有将其转换为远程透明的内容。
任何善良的灵魂都想建议一种方法来做到这一点?
答案 0 :(得分:12)
使窗口不透明,并给它一个清晰的背景:
func applicationDidFinishLaunching(aNotification: NSNotification) {
window.opaque = false
window.backgroundColor = NSColor.clearColor()
}
答案 1 :(得分:9)
NSWindow有一个不透明的房产'默认情况下这是真的。
当窗口不透明时,此属性的值为true; 否则,错误。
只需将其更改为false:
override func viewWillAppear() {
super.viewWillAppear()
view.window?.opaque = false
view.window?.backgroundColor = NSColor(red: 1, green: 0.5, blue: 0.5, alpha: 0.5)
}
Swift 4更新: opaque
已重命名为isOpaque
override func viewWillAppear() {
super.viewWillAppear()
view.window?.isOpaque = false
view.window?.backgroundColor = NSColor(red: 1, green: 0.5, blue: 0.5, alpha: 0.5)
}
答案 2 :(得分:3)
Swift 3
的一点点更新带有注释的窗口子类示例:
class customWindow: NSWindow {
override init(contentRect: NSRect, styleMask style: NSWindowStyleMask, backing bufferingType: NSBackingStoreType, defer flag: Bool) {
super.init(contentRect: contentRect, styleMask: style, backing: bufferingType, defer: flag)
// Set the opaque value off,remove shadows and fill the window with clear (transparent)
self.isOpaque = false
self.hasShadow = false
self.backgroundColor = NSColor.clear
// Change the title bar appereance
self.title = "My Custom Title"
//self.titleVisibility = .hidden
self.titlebarAppearsTransparent = true
}
答案 3 :(得分:1)
Swift 3/4
self.window?.isOpaque = false
self.window?.hasShadow = false
self.window?.backgroundColor = NSColor.clear
self.window?.titlebarAppearsTransparent = true