2016-01-13 64 views
1

我试图快速学习。到目前为止,我的代码运行,但它不显示的CALayer创建:CALayer无法看到

class AppDelegate: NSObject, NSApplicationDelegate { 

var window: NSWindow! 
var mainview: NSView! 
var redLayer: CATextLayer! 


func applicationDidFinishLaunching(aNotification: NSNotification) { 

    self.mainview = NSView(frame: NSRect(x:0,y:0,width:300,height:300)) 


    self.window = NSWindow(contentRect: NSMakeRect(0, 0, 300, 300), 
     styleMask: NSTitledWindowMask | NSClosableWindowMask | 
     NSMiniaturizableWindowMask, 
     backing: .Buffered, `defer`: false) 

    self.window.contentView!.addSubview(self.mainview) 
    self.window.makeKeyAndOrderFront(self.window) 
    self.window.makeMainWindow() 
    self.redLayer = CATextLayer() 
    self.redLayer.string = "test" 
    self.redLayer.frame = self.mainview.bounds 
    self.redLayer.bounds = CGRect(x:50,y:50,width:300,height:300) 
    self.redLayer.position = CGPoint(x: 50, y: 50) 
    self.redLayer.backgroundColor = CGColorCreateGenericRGB(1.0, 0.0, 0.0, 1.0) 
    self.redLayer.foregroundColor = CGColorCreateGenericRGB(0.0, 0.0, 0.0, 1.0) 
    self.redLayer.hidden = false 
    self.mainview.layer = self.redLayer 
} 

func applicationWillTerminate(aNotification: NSNotification) { 
    // Insert code here to tear down your application 
}} 

代码给出了一个灰色的空窗口。但我希望它显示一段文字说“测试”的彩色窗口,但我看不到这些东西。

我尝试了多种方式,无法解决此问题。

回答

2

在OS X中,Core Animation支持(CALayer)未自动启用。您必须登录manually enable it。对于以编程方式创建的视图,请使用wantsLayer属性。

self.mainview.wantsLayer = true 
+0

确实,这解决了问题! –