如何使用Swift在NSOutlineView中搜索字符串

如何使用Swift在NSOutlineView中搜索字符串,swift,cocoa,nsoutlineview,Swift,Cocoa,Nsoutlineview,我有plist(字典)数据的大纲视图。我想给它添加搜索功能。我为用户输入添加了一个搜索栏。一旦用户输入一些字符串并单击搜索按钮,搜索的项目就会在大纲视图中被选中 我试图搜索一些教程,但没有任何帮助。我找到了一些有用的教程,并且能够在大纲视图中搜索字符串 let userInput = txtSearchField.stringValue guard let outlineView = myOutlineView else { return } var itemInde

我有plist(字典)数据的大纲视图。我想给它添加搜索功能。我为用户输入添加了一个搜索栏。一旦用户输入一些字符串并单击搜索按钮,搜索的项目就会在大纲视图中被选中


我试图搜索一些教程,但没有任何帮助。

我找到了一些有用的教程,并且能够在大纲视图中搜索字符串

    let userInput  = txtSearchField.stringValue
    guard let outlineView = myOutlineView else { return }

    var itemIndex: Int = outlineView.row(forItem: userInput)
    let value = outlineView.item(atRow: itemIndex)
    
    if itemIndex < 0 {
        //if item is not available in the outlineView
        
    }
    print("Expanding row", itemIndex)
    outlineView.selectRowIndexes(IndexSet(integer: itemIndex), byExtendingSelection: .init(true))
    outlineView.scrollRowToVisible(itemIndex)
let userInput=txtSearchField.stringValue
guard let outlineView=myOutlineView else{return}
var itemIndex:Int=outlineView.row(forItem:userInput)
let value=outlineView.item(atRow:itemIndex)
如果itemIndex<0{
//如果项目在大纲视图中不可用
}
打印(“展开行”,itemIndex)
outlineView.selectRowIndexes(IndexSet(整数:itemIndex),byExtendingSelection:.init(true))
outlineView.scrollRowToVisible(itemIndex)

在数据中搜索字符串并选择相应的项。“你卡在哪里了?”威勒克,实际上我有一个plist,它由字典中的数组和字典中的数组组成。我不知道如何迭代每个根项目,并使其成为大纲视图中的选定项目。附加问题中的plist数据。plist如何转换为项目?@Willeke首先将值存储到数组中,并使用OutlineView委托方法显示这些值。