3

我的应用程序中有一个首选项面板,其中有一个NSColorWell用于设置背景颜色的按钮和一个NSFontPanel用于选择字体的按钮。

我想要的行为如下:

  • 当我单击NSColorWell然后拖动面板中的某些颜色时,我希望它在拖动时更改我的“预览”区域中的背景颜色。

  • 当我单击“更改字体...”按钮时,我会显示我NSFontPanel的字体,并且当我选择一种字体时,它也应该在我的“预览”区域中更改。假设我点击了颜色按钮NSFontPanel,我想改变我的字体颜色

本质上,我正在尝试使两个颜色面板(尽管据我所见,每个应用程序实际上只有一个共享面板)独立工作。

现在,假设我打开了字体和颜色面板。当我单击窗口上的颜色井时,它会激活,然后如果我单击字体面板中的颜色按钮,颜色不会影响字体而是影响背景,因为颜色井保持激活状态并且因为我注册了颜色更改我的控制器类中的通知。

有人可以给我一个具体方法来编码这种行为的例子吗?似乎有很多不同的方法可以使NSFontPanelNSColorPanel显示(NSFontPanelNSFontManager?),以及处理来自面板本身的事件的许多方法(通知?代表(在NSFontManagerNSFontPanel)?将控制器插入响应者链?)。我还没有找到任何关于一次处理多个颜色源的理想方法的指导方针,我有点迷茫。

提前致谢!

4

1 回答 1

2

颜色选择器机制是专门设计的,因此您可以“激活”多个颜色孔,然后同时设置它们的颜色。我相信字体面板的颜色按钮没有“放开”颜色选择器的原因是因为它显然不是真正的“颜色井”。我没有直接注意到这种行为,但它很容易通过简单的新鲜 xib 与颜色井和标准文本视图重现。

本质上,您可以同时单击井和字体颜色,井和选定的文本都将更改为选择的颜色。你甚至可以关掉井,只有文字会改变。但是,在关闭字体面板之前,您不能让颜色选择器的字体面板“放开”。

我称之为错误:http ://bugreport.apple.com

于 2009-11-03T16:03:48.840 回答