【问题标题】:Programmatically set NSTextField action以编程方式设置 NSTextField 操作
【发布时间】:2017-12-14 22:06:14
【问题描述】:

我在接收来自 NSTextField 的操作时遇到问题。在我的应用程序中,我通过界面生成器创建了一些 NSTextField,而其他的则以编程方式创建。

似乎默认情况下,IB 文本字段在结束编辑时发送操作。但是,如果我使用 init(frame:) 初始化程序创建一个 NSTextField,它只会在输入时发送一个动作。

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

有没有办法通过代码更改此界面构建器设置?

【问题讨论】:

    标签: cocoa swift3 nstextfield


    【解决方案1】:

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

    // Same as IB's “Sent On End Editing”.
    myTextField.cell?.sendsActionOnEndEditing = true
    
    // Same as IB's “Send on Enter Only”.
    myTextField.cell?.sendsActionOnEndEditing = false
    

    【讨论】:

    • 没有意识到它是单元格的一部分,而不是 NSTextField。谢谢!
    • 我想知道为什么它在 IB 中作为文本字段的选项可用时被埋在那里
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-15
    • 2012-02-26
    • 2015-11-05
    • 1970-01-01
    • 2013-02-09
    • 1970-01-01
    • 2023-03-10
    相关资源
    最近更新 更多