以编程方式设置NSTextField操作

时间:2017-07-11 02:38:04

标签: cocoa swift3 nstextfield

我在从NSTextField接收操作时遇到问题。在我的应用程序中,我有一些通过界面构建​​器创建的NSTextFields,而其他的是以编程方式创建的。

默认情况下,IB文本字段会在结束编辑时发送操作。但是如果我使用init(frame:)初始值设定项创建NSTextField,它只会在输入时发送操作。

我意识到我可以解决"这可以通过继承和覆盖controlTextDidEndEditing函数然后在那里发送一个动作,但是当我调用super.controlTextDidEndEditing时它也会发送一个动作。因此,操作将被发送两次......我真的只想通过代码创建的文本字段使用选项"在结束编辑时发送"。

是否无法通过代码更改此界面构建器设置?

enter image description here

1 个答案:

答案 0 :(得分:4)

您可以在代码中进行设置。它实际上是文本字段单元格中的属性:

// Same as IB's “Sent On End Editing”.
myTextField.cell?.sendsActionOnEndEditing = true

// Same as IB's “Send on Enter Only”.
myTextField.cell?.sendsActionOnEndEditing = false