2017-09-22 6 views
0

私のMacアプリケーションのスクロールバーの色を変更したい。具体的には、背景色を変更したい。スクロールバーの色を変更する

私のアプリケーションはQtベースなので、アプリケーションはすでに作成され実行されています。私はQWidgetのためにNSViewを得ることができます。

スクロールバーの外観を変更するためにQtのスタイルシートを使用できますが、デフォルトのスクロールバーにはアプリケーション全体の背景色を設定することをお勧めします。

私は[[NSApplication sharedApplication] keyWindow].backgroundColor = [NSColor grayColor];を試しましたが、スクロールバーは明るいままです。

答えて

0

私はthis screenshotの右側のスクロールバーがあなたが探していると仮定します。

この場合、オペレーティングシステムによって定義されているため、Swiftを使用して色を変更することはあまりありません。

私はこのソリューションが主にコード指向ではないので、あなたが探しているものではないかもしれないことを理解していますが、私が知る限り他の方法はありません。 .carファイルを変更するには、まずThemeEngineをダウンロードする必要があります。 here

  1. は/System/Library/CoreServices/SystemAppearance.bundle/Contents/Resourcesに移動し、への書き込み権限を持っている任意のディレクトリに「システムAppearance.car」という名前のファイルをコピーします。
  2. 「ScrollBarOverlay_Track」という名前のイメージアセットを検索し、デフォルトのスクロールバーの背景イメージを自分で置き換えます。私はPhotoshopを使って編集しました。
  3. SystemAppearance.carの変更されたバージョンを保存し、アプリのResourcesフォルダに必ず含めてください。

    window.appearance = NSAppearance(appearanceNamed: NSAppearance.Name(rawValue: "SystemAppearance"), bundle: nil) 
    

    これはあなたのウィンドウの外観を変更します:

  4. は、ウィンドウを初期化する次のコードを記述します。別の名前を付けた場合は、windowをウィンドウに置き換えてください。

希望します。

+0

あなたの答えをありがとう。それは私のために働かなかった。 ThemeEngineからFinderウィンドウに画像をドラッグして、PNGをコピーしました。私はそれらを編集し、それらを元に戻し、新しい自動車ファイルを保存しました。それから、私はResourcesにコピーして、NSView * my_view =(NSView *)(w-> winId())を実行しました。 NSWindow * my_win = [my_view window]; [my_win setAppearance:[[NSAppearance alloc] initWithAppearanceNamed:@ "SystemAppearance"バンドル:nil]]; ' – koan

関連する問題