在Swift中检测NSTextField上的粘贴操作

问题描述:

我想在将其完全粘贴到NSTextField之前配置一些文本。在Swift中检测NSTextField上的粘贴操作

是否有一种(简单)的方法来检测用户是否粘贴文本而不是将其写入到Swift中的NSTextField中?

+1

这里有一个想法:我没有张贴作为一个答案,因为现在我没有测试过这一点,真的没有那种时间,但您可以尝试使用Interface Builder将“编辑”菜单>“粘贴”按钮链接到您自己的功能。这将允许您在用户粘贴内容时执行操作。 – Arc676

为什么不检查更改的大小?您可以实现的委托方法,并做一些事情,如:

func textDidChange(notification: NSNotification) { 
let textField = notification.object 
let newTextLength = textField.text.characters.count 
... 

您现在可以比较与前一个文本的长度(你会在某个地方存储),如果它超过1个字符改变,那么用户正在粘贴一些东西。我希望这有帮助。

+0

这不会检测文本是否输入或粘贴文本......它只会检测是否更改了内容,更改的方式。 – Zaphod

+0

@Zaphod这不适用于很多事情吗?我们观察到暗含其他事物的某些事物,并且我们假设隐含的行为已经发生。 – Arc676

+0

@Zaphod,这样你就可以检测到用户正在粘贴它。除非他一次只粘贴一个字符。您可能也可以使用某种方法调整以获取粘贴:选择器。我不会推荐思想混乱。 –

nstextfield没有复制和粘贴功能。这些只能在nstextview中找到。值得注意的是当编辑一个文本字段时,它会在编辑过程中打开一个名为fieldeditor的文本视图。

见我的答案在这里:

NSTextField: exposing its Copy and Paste methods