NSColorPanel(NSColorWellを使用)とNSFontPanelのカラーパネルを共存させる方法は?
-
06-07-2019 - |
質問
アプリケーションに設定パネルがあり、背景色を設定するための NSColorWell
と、フォントを選択するための NSFontPanel
を開くボタンがあります。
私が持ちたい振る舞いは次のとおりです:
-
NSColorWell
をクリックしてパネルの色の上にドラッグすると、 背景色 を変更したい私の「プレビュー」でドラッグ中の領域。 -
「フォントを変更...」をクリックすると、ボタン、
NSFontPanel
を表示し、フォントを選択すると" preview"で変更する必要があります。エリアも。NSFontPanel
の色ボタンをクリックすると、 フォントの色 を変更したい。
本質的に、私は両方のカラーパネルを(アプリごとに実際には1つの共有パネルしか見ていませんが)独立して動作させようとしています。
今、フォントパネルとカラーパネルを開いているとします。ウィンドウの色ウェルをクリックするとアクティブになり、フォントパネルの色ボタンをクリックすると、色はフォントではなく背景に影響します。色ウェルはアクティブのままで、色の変更を登録したためです。コントローラクラスの通知。
この種の動作をコーディングする特定の方法の例を教えていただけますか? NS )、およびパネル自体からのイベントを処理する多くの方法(通知?デリゲート( NSFontManager
または NSFontPanel
上の)?)コントローラーをレスポンダーチェーンに挿入しますか? )。一度に複数のカラーソースを処理するための理想的な方法に関するガイドラインが見つかりませんでした。少し迷っています。
事前に感謝します!
解決
カラーピッカーメカニズムは、「アクティブ化」できるように特別に設計されています。複数のカラーウェルを作成し、それらのカラーを同時に設定します。フォントパネルのカラーボタンが「放せ」ない理由を信じています。カラーピッカーの利点は、明らかに「カラーウェル」ではないようだからです。私はこの振る舞いに直接気付きませんでしたが、カラーウェルと標準のテキストビューを備えたシンプルな新鮮なxibで簡単に再現できます。
本質的に、ウェルとフォントの色の両方をクリックすると、ウェルと選択したテキストの両方が選択した色に変わります。井戸をオフにすることもでき、テキストのみが変更されます。ただし、フォントパネルを「放す」ことはできません。フォントパネルを閉じるまで、カラーピッカーを使用します。
これをバグと呼びます: http://bugreport.apple.com