2017-04-08 63 views
0

我试图通过编程的方式开发一个OS X可可应用程序,而且我试图显示一个窗口,其中包含一个标题栏,其中显示了顶部通常的交通灯(关闭,最小化,全屏)选项。 但是,当窗口显示在屏幕上时,只有一个空的窗口。如何让标题栏在NSWindow中以编程方式显示?

这里是我使用的代码:

class AppDelegate: NSObject, NSApplicationDelegate { 

let window = NSWindow(contentRect: NSMakeRect(10, 10, 200, 200), 
         styleMask: NSWindowStyleMask.closable, 
         backing: NSBackingStoreType.buffered, defer: true) 

func applicationDidFinishLaunching(_ aNotification: Notification) { 

    self.titleVisibility = .visible; 
    self.titlebarAppearsTransparent = false; 
    self.isMovableByWindowBackground = true; 

    let controller = NSWindowController(window: window) 
    controller.showWindow(self); 

} 

构建NSWindow但没有成功时,我已经尝试了不同的NSWindowStyleMask

这是我所看到的:

black window with no titlebar

我使用的Xcode 8.3 10.12

+0

http://stackoverflow.com/a/写29339315/2303865 –

+0

问题是,您需要添加.titled('[.titled,.closable]')到您的styleMask,否则标题栏和所有按钮(关闭,调整大小和最小化)将b隐藏。 –

回答

0

所以你需要4点样式的面具。

NSWindowStyleMask.closable NSWindowStyleMask.miniaturizable NSWindowStyleMask.resizable NSWindowStyleMask.titled

把他们都融入其中,你可以使用数组

[NSWindowStyleMask.closable, NSWindowStyleMask.miniaturizable, NSWindowStyleMask.resizable, NSWindowStyleMask.titled] 

但是尽量在迅速风格

[.closable, .miniaturizable, .resizable, .titled] 
+0

他不需要所有的人。他只需要添加标题为styleMask选项集。 –

+0

我最初尝试'.titled'样式掩码,但我得到异常'2017-04-08 12:57:25.982647 + 0100 X [8590:1030549] ***在 - [X.XApplication init]中声明失败, /Library/Caches/com.apple.xbs/Sources/AppKit/AppKit-1504.82.104/AppKit.subproj/NSApplication.m:1778',也与建议的数组一样。 –

+0

检查我上面张贴的链接 –

相关问题