2016-01-13 3 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 поддержка базовой анимации (CALayer) не включена автоматически. Вы должны manually enable it. Для программно созданного представления используйте свойство wantsLayer.

self.mainview.wantsLayer = true 
+0

Действительно, это устранило проблему! –