ひtoりgoと

取り消す - Tiger の 切り捨て

macOS 開発

iTunesVolume 1.2 で Tiger を切り捨てたが、ドイツの方から苦情が来た。彼にはいろいろとお世話になっているので使えなくなるのは申し訳ない...
どうしようもないので Tiger をサポートする方針に戻すことにした。

Tiger を切り捨てた理由は前にも書いた通り、

  1. 環境設定ウインドウの表示に NSViewController を使用
  2. ZMHUDControls での描画に NSGradient を使用

するためだった。どちらも Leopard で追加されたクラス。

1 に関しては、NSViewController と同じ働きをするクラス "ZMViewController" を自分で作って対処。意外と簡単にできた。

2、Tiger 以前でグラデーションを実現したければ CTGradient を使う必要がある。

CTGradient に NSGradient と同じメソッドをカテゴリで実装。
しかし、問題が発生。NSGradient と CTGradient で結果が異なるのだ。

使用する NSColor の透明度がすべて同じときは問題ないのだが、異なる透明度のものを使用すると互いに違う結果になってしまう。(画像は [NSColor colorWithDeviceWhite: 1 alpha: 0] と [NSColor colorWithDeviceWhite: 1 alpha: 1] で作ったグラデーション。)

どうすべきだろうか...

Share

リンクも共有もお気軽に。記事を書くモチベーションの向上に役立てます。

© 2005-2022 zumuya