代码之家  ›  专栏  ›  技术社区  ›  user142019

无边界NSWindow上的圆角

  •  4
  • user142019  · 技术社区  · 14 年前

    我正在创建一个应用程序 I don't want a title bar

    如果标题一直保持不变,那么显示出来有意义吗?例如,如果一个应用程序没有显示文档或它打开的任何其他资产的名称,并且如果你想移动窗口,在顶部的其他控件周围有足够的空间可以抓取,那么标题是否有很大的作用? http://i.stack.imgur.com/C9mTo.png

    问题是:我该怎么做?我试着用 [mainWindow setStyleMask:NSBorderlessWindowMask]; [mainWindow setStyleMask:NSBorderlessWindowMask | NSResizableWindowMask]; 它不再是无边界的了。有人能帮我吗?谢谢。

    3 回复  |  直到 14 年前
        1
  •  3
  •   Community CDub    8 年前

    虽然这是一个很古老的问题。。。

    现在在OSX10.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

        2
  •  1
  •   Community CDub    8 年前

    这里有一个类似的问题: Hide NSWindow title bar

    基本上,如果你使用NSBorderlessWindowMask,你就不能使用任何其他的 style mask 因此,您必须实现自己的窗口控件,并绕过角落自己。

    希望苹果将提供10.7的新窗口样式。

        3
  •  1
  •   Stephen Furlani    14 年前

    如果你想做一些完全不同的事情(比如画你自己的窗口),请签出 Matt Gemmell's code. 查看MAAttachedWindow代码,了解如何删除标题栏,绘制bezier角,并使其看起来很棒。