2009-10-26 81 views
1

我有一個偏好面板在我的應用程序中,我有一個NSColorWell設置一些背景顏色和一個按鈕,打開一個NSFontPanel選擇一種字體。如何使NSColorPanel(使用NSColorWell)和NSFontPanel的顏色面板共存?

我想有行爲如下:

  • 當我點擊NSColorWell然後拖過一些顏色的面板,我希望它改變背景顏色我當我拖動「預覽」區域。

  • 當我點擊「更改字體...」按鈕時,我會顯示我的NSFontPanel,當我選擇一個字體時,它也會在我的「預覽」區域中更改。說我點擊顏色按鈕的NSFontPanel,我想改變我的字體的顏色。

實質上,我試圖讓兩個彩色面板(儘管從我看到的真的只有一個共享面板每個應用程序)獨立工作。

現在,說我打開了字體和顏色面板。當我點擊窗口上的顏色時,它會激活,然後如果我點擊字體面板中的顏色按鈕,顏色不會影響字體,但會影響背景,因爲顏色保持激活狀態,並且因爲我註冊了顏色變化我的控制器類中的通知。

有人能給我一個具體的方式來編寫這種行爲的例子嗎?似乎有很多不同的方法可以使NSFontPanelNSColorPanelNSFontPanelNSFontManager?)以及許多方式來處理來自面板本身(通知代表(在NSFontManagerNSFontPanelNSFontPanel))的事件?將控制器插入響應者鏈?)。我沒有找到任何指導方針,一次處理多個顏色來源的理想方式,我有點失落。

在此先感謝!

回答

1

顏色選擇器機制是專門設計的,因此您可以「激活」多個顏色孔,然後同時設置它們的顏色。我相信爲什麼字體面板的顏色按鈕不能「放開」顏色選擇器,因爲它顯然實際上不是「顏色很好」。我沒有直接注意到這種行爲,但它很容易用一個簡單的新xib和一個顏色良好的標準文本視圖重現。

本質上,您可以同時單擊井和字體顏色,井和選定的文本都將更改爲採摘的顏色。你甚至可以關閉井,只有文本會改變。但是,您不能將字體面板設置爲「放開」顏色選擇器,直到您關閉字體面板。

我稱這是一個錯誤:http://bugreport.apple.com

+0

我不能相信這將是一個錯誤......許多應用程序使用多種字體面板,顏色選取器等錯誤會被報告和現在糾正。必須有一種方法來操縱這些人並接收適當的委託信息......我想我談到如何使用這些面板時,我不會「得到它」。 – Form 2009-11-12 18:11:18