如何在mac mail中的“To / CC”字段中自定义NSTokenField?

时间:2010-02-25 10:47:14

标签: cocoa nstokenfield apple-mail nsscroller

我能够使用NSTokenField,它很容易使用..但我想知道如何自定义它就像在mac邮件中的“To / CC”字段中那样。什么时候没有令牌字段中的令牌增加“To”字段的高度增加到某个限制然后垂直卷轴开始出现!

默认情况下,当我们使用标记字段时,其高度不会增加,也不会出现垂直滚动条!我在IB中尝试了不同的组合,但我无法获得类似功能的mac邮件。

有人能建议我一些解决方案吗?

2 个答案:

答案 0 :(得分:3)

您必须继承NSTokenField才能获得所需的功能。确保并调用setWraps:YES。

当令牌字段的内容发生变化时,您必须计算令牌字段所需的大小并自行调整大小。与添加滚动条相同。在令牌字段的高度达到某个大小后,您将在该字段中插入滚动视图。相反,当重新计算令牌字段大小小于临界大小时,您将删除滚动视图。

为了让它正常工作,这是一项相当多的工作(我发现)。 Apple表示NSTokenField“提供类似于Mail应用程序中的地址字段的标记化编辑”,但它实际上并不是那么相似,因为它没有内置调整大小,拖放对于除文本之外的任何内容都是有问题的。

答案 1 :(得分:2)

我能够使用IFVerticallyExpandingTextField实现此目的。因为NSTokenField继承自NSTextField,所以我使IFVerticallyExpandingTextField继承自NSTokenField,然后继承IFVerticallExpandingTextField以实现我需要对我的NSTokenField版本执行的所有操作。

这应该只是一个下降。它应该立即开始工作。