问题标签 [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 投票
0 回答
62 浏览

macos - 允许 NSTokenField 的前导和尾随空格

我想在 NSTokenField 中允许前导和尾随空格,问题是当它失去焦点时,空间会被自动修剪。我尝试自定义委托函数:editingStringForRepresentedObject 和 displayStringForRepresentedObject 但仍然没有运气......

我会感谢你的帮助。

提前致谢,

BR,梅夫扎尔

0 投票
1 回答
498 浏览

swift - 在 NSTokenField 上获得鼠标点击

我想实现一个NSTokenField,它将显示令牌 - 当悬停在令牌上时 - 显示一个删除图标。随后,当我单击该图标时,我希望删除令牌。

经过大量搜索后,标准NSTokenField似乎无法做到这一点。如果有人知道如何请让我知道。

我查看了https://github.com/octiplex/OEXTokenField并基于该代码在 Swift 中实现了 CustomTokenField 。到目前为止,我有一个正常工作的CustomTokenField,当我将鼠标悬停在令牌上时,它会显示一个删除图标。

下一个阶段结果是一个我自己无法弄清楚的问题。我怎样才能点击令牌触发回调。?

token 类派生自 NSTextAttachmentCell,CustomTokenField 派生自 NStokenField:

我试图用两个不同的角度来解决这个问题:

通过 CustomTokenAttachmentCell

NSTextAttachmentCell 实现了 NSTextAttachmentCellProtocol。

这是有希望的。所以我在CustomTokenAttachmentCell中实现了这些方法,并且实际调用了wantToTrackMouse()。我已经实现了返回“真”。

其他两种方法永远不会被调用。是否需要做其他事情才能使他们被调用?

通过 CustomTokenField

我也尝试从CustomTokenField解决这个问题。可以使用MouseDown()获取鼠标事件,但是我找不到从单元格中实际访问令牌的方法。

我在 StackOverflow 上看到了很多帖子,也看到了提示,但似乎没有一个指向正确的方向。

不知何故,我得出的结论是,您只能在层次结构中有 NSControl 的情况下获取鼠标事件。对于不是这种情况的令牌。NSControl 是视图层次结构的一部分,因此我尝试通过CustomTokenField来实现这一点,但我也在那里陷入了死胡同。例如这个问题Clicking token in NSTokenField是完全相同的,但是设置动作或目标会产生致命错误,因为setActionsetTarget是基类的存根。

我是 Coacoa 的初级程序员,所以希望这只是缺乏知识的问题。

任何建议将不胜感激。

0 投票
0 回答
98 浏览

cocoa - NSTrackingArea Cocoa 的跟踪控制

我想让 NSTokenField 在加载屏幕时忽略鼠标事件。因此,如果我将光标移到该文本字段上,则应用程序将因崩溃日志而崩溃

*** -[RSTokenFieldCell respondsToSelector:]:消息发送到已释放实例 0x611000985c00

我尝试过覆盖 updateTrackingAreas、trackingAreas,但没有运气。有人可以让我知道如何使用它。我有堆栈溢出问题。这样做会完全禁用跟踪选项。请提出任何解决方案。

0 投票
2 回答
456 浏览

cocoa - NSTokenField 值改变通知

在里面输入时,NSTokenField 我会显示这个值的建议, GetCompletionStringsNSTokenFieldDelegate

但是如果我从 NSTokenFiled 中完全删除所有符号,则不会触发此事件。

我需要在何时NSTokenFiled string value更改或清除或更新时收到通知,而无需单击输入按钮。

我在其中使用自定义 nstoken 字段TokenField : NSTokenField,我已经覆盖了 DidEndEditing,如下所示:

这仅在 enter clicked 后调用,不会在文本更改时触发...

我也尝试在视图控制器中处理我的视图的更改事件,但它没有被调用

0 投票
0 回答
118 浏览

objective-c - NSTokenField 委托:( - tokenField:shouldAddObjects:atIndex: ) 在普通样式时不起作用

我的应用程序中有 NSTokenField。我想要简单的风格(只想接受一个值而不是更多)。所以我想通过使用委托来验证数组中的输入文本- tokenField:shouldAddObjects:atIndex: 但是当样式为普通时,这个委托不会运行。当我将样式恢复为默认值时。有用。

这是我的委托代码

怎么了?我应该怎么做才能使 NSTokenField 以普通样式制作,只接受一个令牌,从数组中验证令牌?

0 投票
1 回答
336 浏览

objective-c - 如何实现多行 NSTokenField?

我想实现一个NSTokenField跨越多行的。例如:

多行 NSTokenField

我在网上找到了一些多行的示例代码NSTokenField

让我的班级代表NSTokenField并实现以下方法

但是这段代码不能正常工作。

你能帮我解决这个问题吗?

先感谢您。

0 投票
1 回答
644 浏览

swift - 在 NSTokenField 中设置 Token

当它出现时,我想在 NSTokenField 中设置一些标记。

苹果文件说:setObjectValue:

我尝试使用 setObjectValue 设置令牌

但它不编译。

正确的方法是什么?

0 投票
0 回答
110 浏览

swift - 使用输入字符串的任何匹配部分构建的 NSTokenField 建议列表

我想要使​​用输入字符串的任何匹配部分而不是前缀构建的建议列表。

我像这样构建建议列表:

建议列表的构建工作正常。

我的问题是。如果用户在建议列表中的 NSTokenFiled 中输入“T”,“aaaTwoaa”和“aaaThreeaa”就会出现,如所愿。现在在 NSTokenfield 中选择“a”作为第一个字符。

如何将“T”保留为选定字符,以便用户可以键入“h”来获取“aaaThreeaa?

0 投票
0 回答
165 浏览

swift - 仅允许 NSTokenField 中的特定标记

我目前正在实现一个 NSTokenField ,目前用户输入的任何文本都将转换为令牌。
我只想允许一组特定的标记,任何其他文本都不应该转换为标记。

有没有办法检查输入的文本是否是有效的标记,然后将其转换为保留其他文本不变的标记?

谢谢!

0 投票
0 回答
295 浏览

swift - 编辑令牌时 NSTokenField 崩溃

我正在使用NSTokenField和对应NSTokenFieldDelegate的将由破折号字符包围的所有文本-视为圆角标记,将所有其他文本视为纯文本。

圆形标记显示时没有周围的破折号,双击其中一个标记时,标记会以纯文本模式切换并显示破折号。

在我的NSTokenFieldDelegate实施中

tokenField(NSTokenField, shouldAdd: [Any], at: Int) -> [Any]

我正在检查给定的令牌并在必要时创建四舍五入的令牌。

在某些情况下,例如,在编辑后按回车键提交文本更改时,应用程序会崩溃(在 macOS Mojave 10.14.6 上测试)。演示项目报告了一个索引超出范围异常以及我在下面发布的堆栈跟踪以供参考。

要重现崩溃,请按照以下简单步骤操作

  1. 运行演示应用程序
  2. 在令牌字段中输入“-Dash1-.-Dash2-”
  3. 按回车,文字变为“ Dash1. Dash2
  4. 双击Dash1然后变成“-Dash1-”并被选中
  5. 按回车

您可以在https://github.com/fheidenreich/token-test找到演示项目,我在这里引用了相关代码:

谁能解释为什么应用程序崩溃并可能给出修复或规避问题的提示?