web-dev-qa-db-ja.com

Xcode&Swift-タイトルバーはないが、閉じる、最小化、サイズ変更ボタンがあるウィンドウ

現在、Xcode 6、Beta 5でSwiftを使用しています。タイトルバー、またはタイトルバーと実際のコンテンツの目に見える違いを削除しようとしています。ウィンドウの属性インスペクタのツールバー」で、何も表示されません。すでにタイトルは省略しています。
タイトルが入力されていない場合、タイトルバーはウィンドウの残りの部分との境界線と背景の違いにより、実際のコンテンツとは区別されるため、依然として区別可能です。


優れた例は、現在のYosemite、OS X 10.10、Notesアプリです。ここに見られるように、閉じる、最小化、サイズ変更ボタンだけで、タイトルバーは表示または識別できません。 Screenshot of Notes window

私は他の投稿を検索しましたが、ほとんど役に立ちませんでした。
タイトルバーを完全に非表示にすることについて言及しましたが、[閉じる]、[最小化]、および[サイズ変更]ボタンを手動で再追加する方法がわかりません適切に。卑劣な画像の置換と、メニューバーの[閉じる]、[最小化]、[サイズ変更]機能との接続。

37
Isaiah

ストーリーボードを使用している場合、これはインスペクターバーの単純なチェックボックスです。

  1. Story Boardからウィンドウを選択 enter image description here

  2. インスペクタウィンドウの[透明タイトルバー]チェックボックスをオンにします。

enter image description here

ストーリーボードでは次のようになります。アプリケーションをビルドして実行しても同じように見えます。

enter image description here

5
Fangming

OS X 10.10で追加された新しいウィンドウスタイルマスクNSFullSizeContentViewWindowMaskは、トリックを行います。

self.window.titleVisibility = NSWindowTitleVisibility.Hidden;
self.window.titlebarAppearsTransparent = YES;
self.window.styleMask |= NSFullSizeContentViewWindowMask;

リリースノート

44
Renfei Song

10.10以降では、次を使用できます。

window.titlebarAppearsTransparent = true
window.movableByWindowBackground  = true

Yosemiteには、ウィンドウの外観に関する公式のサンプルプロジェクトがありました。あなたはそれをチェックアウトしたいかもしれません。

18
Cai

Swift 3:-

self.window.titleVisibility = .hidden
self.window.titlebarAppearsTransparent = true
self.window.styleMask.insert(.fullSizeContentView)
16
Jay Mehta

これらを使用できます:

override func viewDidAppear() {
    super.viewDidAppear()

    self.view.window?.titlebarAppearsTransparent = true
    self.view.window?.movableByWindowBackground = true
}
11
Hossein

2017年9月更新、taget 10.11:

override func viewDidAppear() {
    super.viewDidAppear()

    self.view.window?.titleVisibility = .hidden
    self.view.window?.titlebarAppearsTransparent = true
    self.view.window?.styleMask.insert(.fullSizeContentView)
}
4
Andrej Jurkin

Ranfei Songsの回答についてコメントするほどの評判はありませんが、OSX 10.12で実行している場合、titleVisibilityの構文は次のように若干異なります。

self.window.titleVisibility = NSWindowTitleVisibility.Hidden;

代わりにNSWindowTitleHiddenを使用する必要があるため、Ranfeiのコードを更新するには、次のように指定する必要があります。

self.window.titleVisibility = NSWindowTitleHidden;
self.window.titlebarAppearsTransparent = YES;
self.window.styleMask |= NSFullSizeContentViewWindowMask;
1
Jeff U.