Закругленные углы на NSWindow без полей - PullRequest
4 голосов
/ 23 октября 2010

Я создаю приложение и Мне не нужна строка заголовка :

Если заголовок остается неизменным, имеет ли смысл показыватьЭто?Например, если приложение не отображает названия документов или любых других активов, которые оно открывает, и в верхней части есть много места вокруг других элементов управления, чтобы его можно было использовать, если вы хотите переместить окно, делает заголовокслужить много цели?http://i.stack.imgur.com/C9mTo.png

Проблема в том, как мне это сделать?Я попытался использовать [mainWindow setStyleMask:NSBorderlessWindowMask];, но не могу сделать так, чтобы у него были закругленные углы.Я действительно не знаю, как сделать закругления углов.Кроме того, я не могу установить контроль размера.Если я использую [mainWindow setStyleMask:NSBorderlessWindowMask | NSResizableWindowMask];, это больше не без границ.Может кто-нибудь мне помочь?Спасибо.

Ответы [ 3 ]

3 голосов
/ 02 января 2016

Хотя это очень старый вопрос ...

Теперь стало проще на 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)

Вот полный рабочий пример .

Это скопированный ответ от другого вопроса .Кажется немного по-другому, но можно ответить одинаково.

1 голос
/ 14 декабря 2010

Если вы хотите сделать что-то совершенно другое (например, нарисовать свое собственное окно), посмотрите Код Мэтта Джеммелла. Посмотрите на код MAAttachedWindow, чтобы найти способы удаления строки заголовка, рисования углов Безье и придания ей видапревосходный.

1 голос
/ 24 октября 2010

Здесь есть аналогичный вопрос SO: Скрыть строку заголовка NSWindow .

В основном, если вы используете NSBorderlessWindowMask, вы не можете использовать любую другую маску стиля , поэтому вывам придется реализовать свои собственные элементы управления окном и закруглить углы самостоятельно.

Или вы можете использовать обычное окно NSWindow и просто не устанавливать заголовок.См. Tweetie.app для примера.

Надеемся, что Apple предоставит новые стили окна с 10.7.

...