我正在创建一个应用程序I don't want a title bar:
如果标题始终保持不变,那么展示它是否有意义?例如,如果一个应用程序没有显示文档的名称,或者它打开的任何其他资产,并且如果你想移动窗口,其他控件周围有足够的空间可以抓住,标题是服务很多?
问题是:我该怎么做?我尝试使用[mainWindow setStyleMask:NSBorderlessWindowMask];
,但我不能让它有圆角。我真的不知道怎么做圆角。接下来,我无法让它有一个调整大小控件。如果我使用[mainWindow setStyleMask:NSBorderlessWindowMask | NSResizableWindowMask];
它就不再是无边界的了。谁能帮我?感谢。
答案 0 :(得分:3)
虽然这是一个非常古老的问题......
现在在OS X 10.11上更容易了。
window1.backgroundColor = NSColor.whiteColor()
window1.opaque = false
window1.styleMask = NSResizableWindowMask
| NSTitledWindowMask
| NSFullSizeContentViewWindowMask
window1.movableByWindowBackground = true
window1.titlebarAppearsTransparent = true
window1.titleVisibility = .Hidden
window1.showsToolbarButton = false
window1.standardWindowButton(NSWindowButton.FullScreenButton)?.hidden = true
window1.standardWindowButton(NSWindowButton.MiniaturizeButton)?.hidden = true
window1.standardWindowButton(NSWindowButton.CloseButton)?.hidden = true
window1.standardWindowButton(NSWindowButton.ZoomButton)?.hidden = true
window1.setFrame(CGRect(x: 400, y: 0, width: 400, height: 500), display: true)
window1.makeKeyAndOrderFront(self)
Here完整的工作示例。
这是来自another question的复制答案。似乎有点不同,但可以平等回答。
答案 1 :(得分:1)
这里有一个类似的问题:Hide NSWindow title bar。
基本上,如果您使用NSBorderlessWindowMask,则不能使用任何其他style mask,因此您必须自己实现自己的窗口控件并绕过角落。
或者您可以使用常规的NSWindow而不是设置标题。有关示例,请参阅Tweetie.app。
希望Apple能够提供10.7的新窗口样式。
答案 2 :(得分:1)
如果你想做一些完全不同的事情(比如绘制你自己的窗口),请查看Matt Gemmell's code.查看MAAttachedWindow代码,了解删除标题栏,绘制贝塞尔角和使其看起来精湛的方法。
答案 3 :(得分:0)
使用一个简单的技巧就可以轻松地创建带有圆角的窗口:创建一个具有透明背景的窗口,将NSBox
放入该窗口中,然后将其用作内容视图。 NSBox
已具有圆角,可自定义的背景颜色和可自定义的边框(样式,颜色和角半径可自定义)。大部分操作甚至可以在Interface Builder中完成,实际上最后只需要两行代码。有关完整的示例,请访问see here。