【问题标题】:check if NSTextfield is empty or not OSX swift检查 NSTextfield 是否为空 OSX swift
【发布时间】:2016-08-03 15:50:27
【问题描述】:

当用户没有向 NSTextfield 输入值时,我正在使用代码设置值,如果文本字段中有值,则它不会在 else 之后继续

这是一个例子。

 func calculateAmountPanels(){

    let fpanelsHigh = Float(panelsHigh)
    let fpanelsWidth = Float(panelsWidth)

    if panelsHighTextField != nil && panelsWideTextField != nil {
        resHightLabel.stringValue = "N/A"
        resWidthLabel.stringValue = "N/A"
        lblScreenHight.stringValue = "N/A"
        lblScreenWidth.stringValue = "N/A"
        lblScreenArea.stringValue = "N/A"
        lblAmountPanels.stringValue = "N/A"
    }
    else {


    ammountPanels = (fpanelsWidth! * fpanelsHigh!)

    printText()

}
}

一些建议将不胜感激,因为 OSX 编码似乎与 ios 不同。

【问题讨论】:

  • 你到底在问什么?
  • 我想检查文本字段是否为空,如果是,则在不同的标签中返回“N/A”。

标签: swift macos nstextfield


【解决方案1】:

我会添加这个扩展:

extension NSTextField {
    func setStringValueIfEmpty(newValue: String) {
        if self.stringValue == nil || self.stringValue.isEmpty {
            self.stringValue = newValue;
        }
    }
}

并在字段上调用它,如下所示:

resHightLabel.setStringValueIfEmpty("N/A")

【讨论】:

    【解决方案2】:

    你必须检查 NSTextField 的 stringValue,例如:

    panelsHighTextField.stringValue != nil
    

    正如 HAS 所述,您还应该测试 panelsHighTextField.stringValue.characters.count 是否高于 0。

    【讨论】:

    • 您当然也想测试空字符串。
    猜你喜欢
    • 1970-01-01
    • 2016-08-22
    • 2016-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-26
    • 2010-12-23
    • 2013-07-18
    相关资源
    最近更新 更多