Pertanyaan Jumlahkan semua nilai dari textfield dari kolom NSTableView


Saya bekerja dengan cepat 3 dan saya memiliki NSTableView (3 kolom). Saya mengisi data seperti di bawah ini:

 func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {

        var cellIdentifier = String()
        var cellText = String()

            switch tableColumn {
                case tablewView.tableColumns[0]?:
                    cellText = "100"
                    cellIdentifier = "Cell1"
                break

                case tablewView.tableColumns[1]?:
                    cellText = "100"
                    cellIdentifier = "Cell2"
                break

                case tablewView.tableColumns[2]?:
                    cellText = "100"
                    cellIdentifier = "Cell3"
                break

                default: break
            }

            if let view = tableView.make(withIdentifier: cellIdentifier, owner: nil) as? NSTableCellView {
                view.textField?.stringValue = cellText
                return view
            }

        return nil
    }

Sekarang saya ingin menjumlahkan semua nilai kolom 1, setiap kali pilihan akan berubah. bagaimana saya bisa menyadari ini?


5
2018-05-24 12:56


asal


Jawaban:


Untuk menambahkan nilai, Anda harus menjamin bahwa semua nilai adalah angka atau, setidaknya, dapat dikonversi menjadi angka.

Setelah itu, perlu untuk mempertahankan variabel yang menerima kenaikan nilai dari tablewView.tableColumns[1]? 

ex:

var sum = 0

func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {

    var cellIdentifier = String()
    var cellText = String()

        switch tableColumn {
            case tablewView.tableColumns[0]?:
                cellText = "100"
                cellIdentifier = "Cell1"
            break

            case tablewView.tableColumns[1]?:
                cellText = "100"
                sum = sum + Int(cellText)
                cellIdentifier = "Cell2"
            break

            case tablewView.tableColumns[2]?:
                cellText = "100"
                cellIdentifier = "Cell3"
            break

            default: break
        }

        if let view = tableView.make(withIdentifier: cellIdentifier, owner: nil) as? NSTableCellView {
            view.textField?.stringValue = cellText
            return view
        }

    return nil
}

Jadi, pada viewWillLayout() Anda dapat menunjukkan nilai sum variabel menggunakan beberapa label.

JLU.


1
2017-08-03 14:38