1

NSGradient を NSColor に変換することは可能ですか?

- (void) viewWillDraw {
    NSGradient *grad = [[NSGradient alloc] initWithStartingColor:[NSColor lightGrayColor]    endingColor:[NSColor darkGrayColor]];
    [super setBackgroundColor:*gradient*;
}

これは私の方法です。NSGradient を NSColor として渡すことができるようにしたいのですが、これは明らかにできません。それを 1 つに変換する方法はありますか?

4

2 に答える 2

1

10.8 では、次の順序で作成できます。

  1. グラデーションを自在に描くブロック。
  2. ブロックに裏打ちされたイメージ。
  3. イメージをパターンとして繰り返すカラー。

このようにして、グラデーションを含め、どんな色にも似た色を作成できます。

とはいえ、(ブロックに渡された rect を使用して) 背景のサイズにグラデーションを適応させようとし、背景がスクロール ビューのテキスト ビューである場合、これはウィンドウのサイズ変更で正しく機能しない可能性があります。(しばらく前に試したとき、パターンはブロックを再描画しませんでした。単にタイル張りで、少なくとも 1 次元では奇妙に見えました。)グラデーションまたはウィンドウのサイズが固定されている場合、その問題は発生しません。 .

于 2013-04-22T07:57:13.753 に答える