问题标签 [nstokenfield]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2583 浏览

cocoa - NSTokenField 和删除令牌

我的应用程序允许用户将标签附加到某些模型对象(NSManagedObject 的子类)。Tag 类也是 NSManagedObject 的子类。我决定使用NSTokenField来显示标签,其中每个标记都包含一个 Tag 实例作为表示的对象。这一切都很好,但我陷入了用户删除令牌的情况,因为我想检查关联的标签是否已经过时并且应该被删除。

我期待一种方法,NSTokenFieldDelegate或者NSTokenFieldCellDelegate允许我拦截并检查令牌上的删除操作。

经过一番谷歌搜索后,我发现这篇文章解决了这个话题。controlTextDidChange:我在我的控制器(令牌字段的委托)中实现了建议的方法。在检查作为参数传递的控件时,它显示NSTokenTextView为我找不到任何文档的实例(可能是私有类)。

有没有人遇到过这个问题并找到了一个解决方案来优雅地删除标记,同时保持表示对象的底层模型?

编辑

我也发现了这一点,这似乎表明出于某种原因,它的设计目的并不像我们其他人所期望的那样工作。

0 投票
2 回答
817 浏览

macos - NSTokenField 的灵活替代方案?

我正在尝试自定义一个NSTokenField,在尝试了几个小时后,我意识到它NSTokenField的可自定义性不够(至少使用公共方法)。您知道NSTokenField可以轻松定制的替代方案吗?

谢谢!

0 投票
0 回答
316 浏览

objective-c - NSFormatter 和 NSTokenField 并设置最大长度

我想使用自定义的 NSFormatter 来判断 NSTokenField 中字符串的长度。

我已经实现了 NSFormatter 并将其连接到 xib 和所有这些中,现在当我使用连接到 NSTokenField 的格式化程序就地运行我的应用程序时,我收到此错误:

现在我知道被评估的文本单元确实包含一个项目数组,所以我可能需要将它们转换为一个字符串,但是我的代码中出现错误的地方在这里:

我只是评估 fieldFormatter 对象并将其成员变量 int 设置为 40...真的不应该评估文本...对吗?

0 投票
1 回答
160 浏览

cocoa - 如何在 NSTokenField 中传递 indexofselecteditem

我从 tokenField:completionsForSubstring:indexOfToken:indexOfSelectedItem 的回报正在破坏我输入的项目。这解释了原因:阅读此NSTokenField 不允许我键入除 tokenField:completionsForSubstring:... 以外的其他字符串,返回回答了我的大部分问题。

在回答时,Jim Correia 说:“因此,如果您的列表中没有表示子字符串,您要么需要将其设置为 -1(否则它将用您的第一个完成的文本替换用户键入的文本)......”我的情况是规范是返回-1,但我看不到这样做的方法吗?也许我只是在某个地方想念它?

谢谢!

0 投票
2 回答
1362 浏览

cocoa - 以编程方式更改内容后更新 NSTokenField

我已经实现了一个 NSTokenField ,它使用一些自定义数据对象来显示动态数据。代表设置良好并显示令牌的正确值。

我还在标记上实现了一个菜单,允许选择用于显示每个标记的格式。但是,我的问题是我无法使 NSTokenField 立即响应这些更改并使用新选择的格式重新绘制令牌。

如果我在 NSTokenField 之外单击,它会退出第一响应者,它会立即重绘。我也可以通过将第一响应者显式设置为 nil 以编程方式执行此操作。唯一的问题是 NSTokenField 失去焦点 - 并在第一响应者选择字段中的所有内容时重新分配它,因此用户可能会意外覆盖整个内容。

所以我的问题是是否有任何方法可以触发 NSTokenField 重绘其内容而不改变焦点和选择?

0 投票
1 回答
802 浏览

objective-c - 如何使 NSControl(例如 NSTokenField)忽略鼠标事件

具体来说,我想NSTokenField忽略鼠标事件,因为我使用它NSTableCellView只是为了以标记化的方式显示数据而不允许任何编辑。

设置令牌字段的enabled = NO工作,除了它使令牌变灰并使其难以阅读文本。

设置标记字段editable = NO非常接近我想要的——它可以防止编辑,同时保留标记字段的外观——除了当我将鼠标悬停在标记上时,它们会亮起。如果我能阻止这种情况,我会做生意的。

我怀疑我需要子类化一些东西并覆盖一些NSResponder方法,但不太确定该怎么做。我尝试了子类化NSTokenField和覆盖mouseEntered:并且mouseMoved:什么都不做,但这也不起作用。

0 投票
3 回答
937 浏览

objective-c - 单击时显示来自 NSTokenField 令牌的 NSPopover

单击令牌时,我试图NSPopover从令牌中显示一个。NSTokenField

这些令牌具有显示菜单的内置方式,因此从设计的角度来看,它与该操作没有什么不同。

但是,单击令牌时似乎没有任何(好的)方法来执行任意代码。

已经设法将一些代码滑入- tokenField:menuForRepresentedObject:,但它远非优雅。

假设这- tokenField:menuForRepresentedObject:是单击标记时执行代码的唯一方法,我还有另一个问题:获取NSRect表示标记的 ,以便NSPopover可以与所述标记保持视觉关系。我试图做一些字符串杂耍,弄清楚令牌是如何出现的,等等,但它远非可靠,甚至需要一个未记录的方法。

底线:如何在 中显示NSPopover来自所选标记的NSTokenField

0 投票
1 回答
1202 浏览

objective-c - Numbers 中的标记文本字段

我想要一个文本字段,例如 Numbers 中的表达式编辑器文本字段:

在此处输入图像描述

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

在此处输入图像描述

我必须将这些标记嵌入到特定位置的文本中,否则它们的工作方式完全一样NSTokenField(退格删除一个标记,您可以将它们拖动等等)。

是否有任何第一方或第三方控件可以执行此类操作?我什么也没找到。

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

0 投票
1 回答
349 浏览

objective-c - NSTokenField 选择

我以前从未使用过 NSTokenFields,所以我查看了 Token Field 编程指南。我已经阅读了很多关于与单个令牌进行交互的内容,但是如果我想与多个令牌进行交互怎么办?我可以通过按住 shift 一次选择多个标记,但是当我右键单击时,只有一个标记被选中。有没有办法处理多项选择?

此外,即使我可以 shift_select 多个标记,如何在不同的位置选择多个标记(通过使用命令/ctrl?)

谢谢!

0 投票
1 回答
975 浏览

cocoa - NSTextField 中的文本标记

我正在尝试创建一个 NSTextField 以允许批量重命名某些文件。该字段应该允许插入一些标记来自定义每个文件名。NSTokenField 的问题是 1)它修剪空白,这应该是允许的,2)它没有足够的功能来混合令牌和纯文本,例如,它应该识别令牌的开头,即使实际样式是纯文本。

现在我想子类化 NSTextField 或 NSTextView 来手动绘制我的标记,但是我怎样才能让每个标记都像单个字符一样?我可以以某种方式添加带有一些文本的 NSCell 吗?