2010-10-23 5 views
4

Я создаю приложения и I don't want a title bar:Круглые углы на безграничном NSWindow

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

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

+0

Возможный дубликат [Скрыть строку заголовка NSWindow] (http://stackoverflow.com/questions/2018147/hide-nswindow-title-bar) – Eonil

ответ

1

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

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

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

Надеюсь, Apple предоставит новые стили окон с 10.7.

1

Если вы хотите сделать что-то совершенно другое (например, рисовать собственное окно), проверьте Matt Gemmell's code. Посмотрите на MAAttachedWindow код для удаления заголовка, рисования безьеров и создания великолепного внешнего вида.

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 «s полный рабочий пример.

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