我的应用程序允许用户将标签附加到某些模型对象(NSManagedObject 的子类)。Tag 类也是 NSManagedObject 的子类。我决定使用NSTokenField
来显示标签,其中每个标记都包含一个 Tag 实例作为表示的对象。这一切都很好,但我陷入了用户删除令牌的情况,因为我想检查关联的标签是否已经过时并且应该被删除。
我期待一种方法,NSTokenFieldDelegate
或者NSTokenFieldCellDelegate
允许我拦截并检查令牌上的删除操作。
经过一番谷歌搜索后,我发现这篇文章解决了这个话题。controlTextDidChange:
我在我的控制器(令牌字段的委托)中实现了建议的方法。在检查作为参数传递的控件时,它显示NSTokenTextView
为我找不到任何文档的实例(可能是私有类)。
有没有人遇到过这个问题并找到了一个解决方案来优雅地删除标记,同时保持表示对象的底层模型?
编辑
我也发现了这一点,这似乎表明出于某种原因,它的设计目的并不像我们其他人所期望的那样工作。