Xcode风格的字体选择器

时间:2012-03-05 14:19:35

标签: objective-c cocoa fonts appkit

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

这是在字体名称文本字段本身内有一个小“T”按钮(看似)的那个。

这是一个标准的可可实现吗?

2 个答案:

答案 0 :(得分:0)

你需要自己动手。见Subclassing NSControl。您将子类化NSTextField和NSTextFieldCell。实际上,请阅读整个指南。一旦你有了一个很好的理解,那么你可以覆盖绘图/几何例程来返回一个宽度稍小的矩形(小到足以为字体“按钮”留出空间)。然后绘制你的字体按钮。您将在字体按钮上响应其鼠标事件,就像对任何NSView一样。

答案 1 :(得分:0)

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

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

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

相关问题