objective-c – 与Numbers中的令牌文本字段

前端之家收集整理的这篇文章主要介绍了objective-c – 与Numbers中的令牌文本字段前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想有一个文本字段,如Numbers中的表达式编辑器文本字段:

它与NSTokenField非常相似,但NSTokenField仅支持分隔符分隔的标记列表,如Mail.app中的“To:”字段.

我必须将这些令牌嵌入到特定位置的文本中,但是否则它们的工作方式与NSTokenField完全相同(退格会删除令牌,您可以将它们拖动等等).

有没有第一方或第三方控制做这样的事情?我没找到任何东西.

如果没有,你会如何推荐实施它?使用Core Text并重新发明轮子(使用更好的令牌支持实现NSTextField)?或者有更好的解决方案吗?

解决方法

我认为NSTokenField没有替代控件(好吧,几周之前我找不到一个).

一个可能的选择可能是遵循Apple的示例项目LayoutManagerDemo中提供的解决方案.这显示了NSTextView的子类,能够检测文本上的鼠标移动.安装并运行演示以获得基本想法.

该示例使用NSLayoutManager来检测鼠标移动,但代码可能适用于检测文本中的特定字符序列,如文本字段中的标记.从NSLocationManager获得令牌及其位置后,您可以根据令牌的特征插入自己的表示.一种可能的解决方案是使用NSTextAttachmentCell,它将成为文本中的字形.使用NSTextAttachmentCell的好处是它被Cocoa的文本系统视为一个字形(您可以选择它,它遵循格式化等).通过实现drawWithFrame:inView:您可以添加每个标记的各种可见属性.

猜你在找的C&C++相关文章