我在从NSTextField接收操作时遇到问题。在我的应用程序中,我有一些通过界面构建器创建的NSTextFields,而其他的是以编程方式创建的。
默认情况下,IB文本字段会在结束编辑时发送操作。但是如果我使用init(frame:)
初始值设定项创建NSTextField,它只会在输入时发送操作。
我意识到我可以解决"这可以通过继承和覆盖controlTextDidEndEditing
函数然后在那里发送一个动作,但是当我调用super.controlTextDidEndEditing
时它也会发送一个动作。因此,操作将被发送两次......我真的只想通过代码创建的文本字段使用选项"在结束编辑时发送"。
是否无法通过代码更改此界面构建器设置?
答案 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