繁体   English   中英

NSTableView搜索后更新所选单元格

[英]NSTableView update selected cell after search

我有一些数据的NSTableView。 我想从NSTableView获取所选单元格的名称。 当加载视图时,我可以简单地单击它。 该表显示了单击的单元格的正确名称 当我搜索表格并单击搜索到的单元格时,所选项目名称不会更新,并且会显示在搜索表格之前该位置上该单元格的值。 在此处输入图片说明 有谁能指出我搜索表时如何更新数组? 将不胜感激任何评论。 干杯。

下面的一些代码显示了如何导出选定单元格名称的text2变量:

var menuItems = [mainMenuData(calculationType: "Steel", calculationName: "Simply supported beam", calculationtoCode: "EN1993, BS5950"),
                mainMenuData(calculationType: "Concrete", calculationName: "Pad Foundations", calculationtoCode: "EN1992, BS8110"),
                mainMenuData(calculationType: "Loading", calculationName: "Wind loading", calculationtoCode: "EN1994, BS5675"),
                mainMenuData(calculationType: "Timber", calculationName: "timber rafter", calculationtoCode: "EN1995, BS3453"),
                mainMenuData(calculationType: "Steel", calculationName: "Portal Frame analysis", calculationtoCode: "EN1993, BS5950"),
                mainMenuData(calculationType: "Foundations", calculationName: "Pad foundations", calculationtoCode: "EN1992, BS8110")]

@IBOutlet var menuController: NSArrayController!
@IBOutlet weak var statusLabel: NSTextField!
@IBOutlet weak var mainMenuTableView: NSTableView!
@IBOutlet weak var selectedCalc: NSTextField!      

func updateMainMenu(){
    let text : String
    let text2 : String
    let itemSelected = mainMenuTableView.selectedRowIndexes.count
    let selected = mainMenuTableView.selectedRow

    if (itemSelected == 0) {
        text = "\(menuItems.count) items"
        text2 = "nothing selected"
    }
    else
    {
        text = "\(itemSelected) of \(menuItems.count) selected"
        text2 = "selected \(menuItems[selected].calculationName)"
    }

    statusLabel.stringValue = text
    selectedCalc.stringValue = text2
}

func tableViewSelectionDidChange(notification: NSNotification) {
    updateMainMenu()

        }

@IBAction func searchChange(sender: AnyObject) {
    let searchString = sender.stringValue
    var predicate: NSPredicate? = nil
    if (searchString != ""){
        var dict: [String : AnyObject] = ["value" : searchString]
        predicate = searchPredicate.predicateWithSubstitutionVariables(dict)


    }
    menuController.filterPredicate = predicate

}

menuController的rangedObjects包含已过滤的对象。 如果您确实绑定了选择索引,则menuController的selectedObjects包含选定的对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM