我可以使用 NSTokenField,它很容易使用.. 但我想要你的建议,告诉我如何自定义它,就像它在 mac 邮件中的“To/CC”字段中一样。当没有。令牌字段中的令牌增加“到”字段的高度增加到一定的限制,然后垂直滚动条开始出现!
默认情况下,当我们使用令牌字段时,它的高度既不会增加,也不会出现垂直滚动条!我在 IB 中尝试了不同的组合,但我无法获得类似 mac 邮件的功能。
谁能建议我一些解决方案?
我可以使用 NSTokenField,它很容易使用.. 但我想要你的建议,告诉我如何自定义它,就像它在 mac 邮件中的“To/CC”字段中一样。当没有。令牌字段中的令牌增加“到”字段的高度增加到一定的限制,然后垂直滚动条开始出现!
默认情况下,当我们使用令牌字段时,它的高度既不会增加,也不会出现垂直滚动条!我在 IB 中尝试了不同的组合,但我无法获得类似 mac 邮件的功能。
谁能建议我一些解决方案?
您必须继承 NSTokenField 才能获得所需的功能。请务必调用 setWraps: YES。
当令牌字段的内容发生变化时,您必须计算令牌字段所需的大小并自行调整其大小。与添加滚动条相同。在令牌字段的高度达到一定大小后,您将在该字段中插入一个滚动视图。相反,当重新计算的令牌字段大小小于临界大小时,您将移除滚动视图。
要使其正常工作,这是一项相当大的工作(我发现)。Apple 表示 NSTokenField “提供类似于邮件应用程序中的地址字段的标记化编辑”,但实际上并没有那么相似,因为它没有内置调整大小,并且拖放对于文本以外的任何内容都是有问题的。
我能够使用IFVerticallyExpandingTextField来实现这一点。因为 NSTokenField 继承自 NSTextField,所以我让 IFVerticallyExpandingTextField 继承自 NSTokenField,然后将 IFVerticallyExpandingTextField 子类化以实现我对我的 NSTokenField 版本需要做的所有事情。
这应该只是一个插入。它应该立即开始工作。