Swift:如何在tableView中处理带有两位小数的double?

问题描述 投票:0回答:1

我一直在努力解决这一问题。

我的数组中有一个double,但是它始终显示为四舍五入的整数。

var dataArray: [(colorNo: String, colour: NSColor, spares: Double)] = []

这是tableView:

    func numberOfRowsInTableView(aTableView: NSTableView) -> Int {
        return dataArray.count
    }
}

extension ViewController: NSTableViewDelegate {
    func tableView(tableView: NSTableView,
                   viewForTableColumn tableColumn: NSTableColumn?,
                   row: Int) -> NSView? {
        if let column = tableColumn {
            if let cellView = tableView.makeViewWithIdentifier(column.identifier, owner: self) as? NSTableCellView {
                let thread = dataArray[row]
                if column.identifier == "colourNo" {
                    cellView.textField?.stringValue = "\(thread.colourNo)"
                    return cellView
                }
                if column.identifier == "colour" {
                    cellView.textField?.backgroundColor = thread.colour
                    return cellView
                }
                if column.identifier == "spares" {
                    let val = Double(thread.spare)
                    cellView.textField?.doubleValue = val
                    return cellView
                }
                return cellView
            }
        }
        return nil
    }
}

这是Xcode中字段的定义:

enter image description here

无论何时输入十进制值...

enter image description here

它总是恢复为整数:

enter image description here

我确定它一定对外面的人来说是盲目的,但是我担心对我来说不是。

有什么想法吗?

swift xcode tableview decimal
1个回答
0
投票

这与您显示的任何代码均无关。 —您的单元格上有一个NumberFormatter。在字段中输入的字符串被解释为Double的方式以及Double值在界面中显示为字符串的方式取决于该格式化程序的配置。配置它以在小数点后显示内容,这就是它的作用。

© www.soinside.com 2019 - 2024. All rights reserved.