2012-03-05 58 views
4

我想在我的应用程序中添加字体选择器。 Xcode的界面生成器也有一个很好的实现,它也在Xcode自己的首选项窗口中使用。Xcode风格字体选择器

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

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

+0

我目前正在调查NSFontPanel ..我自己需要一个答案,但是哦.. – Mazyod 2012-04-30 16:57:43

+0

我也想使用这个控件。你有没有想出一个类似的解决方案? – 2012-05-17 15:37:33

回答

0

你需要推出自己的。请参阅Subclassing NSControl。您将继承NSTextField和NSTextFieldCell。实际上阅读整个指南。一旦你有一个很好的理解,那么你可以重写绘图/几何例程来返回宽度稍小的矩形(小到足以留下字体“按钮”的空间)。然后画出你的字体按钮。您将在字体按钮上响应其鼠标事件,就像您对任何NSView所做的一样。

0

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

最好的想法可能是重写NSTextFieldCell。我已经能够通过覆盖-drawInteriorWithFrame:inView:来获得所需的外观,并且在调用超级时传递稍宽的帧,然后自己绘制按钮。您还必须自己实现鼠标追踪按钮​​,但您可能只需创建自己的NSButtonCell实例并使用该按钮的子rect调用几个方法即可。

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