Xcode样式的字体选择器



我想在我的应用程序中添加一个字体选择器。Xcode的Interface Builder有一个很棒的实现,它也用于Xcode自己的首选项窗口。

它是在字体名称文本字段中有一个小的"T"按钮(看起来)的。

这是标准的可可实施吗?

您需要自己滚动。请参见NSControl子类。您将对NSTextField和NSTextFieldCell进行子类化。实际上,请阅读整个指南。一旦你有了很好的理解,你就可以覆盖绘图/几何程序,返回一个宽度稍小的矩形(足够小,可以为字体"按钮"留出空间)。然后绘制字体按钮。您将在字体按钮上响应它的鼠标事件,与对任何NSView的响应相同。

按钮的预览文本框没有标准控件,但有一个标准的NSFontPanel类,您可以使用它让用户在单击"T"按钮后选择字体。

最好的想法可能是覆盖NSTextFieldCell。我已经能够通过覆盖-drawInteriorWithFrame:inView:来获得所需的外观,并在调用super时传递一个稍微不那么宽的框架,然后自己绘制按钮。您还必须自己实现按钮的鼠标跟踪,但您可能只需要创建自己的NSButtonCell实例,并使用按钮的子矩形调用它来获得一些方法。

为了方便起见,您可能还想创建一个使用此单元格而不是直接的NSTextFieldCell的NSTextField子类,但如果您从XIB加载内容,您可以更改XIB中单元格的类,并将其保留在常规文本字段视图中。

最新更新