我在我的NSViewController中添加了一个NSSearchField,它是我的大纲视图的主控制器。现在它实现了下一个类:
class MainCatalogNSViewController: NSViewController, NSOutlineViewDelegate, NSOutlineViewDataSource, NSSearchFieldDelegate {
override func viewDidLoad() {
super.viewDidLoad()
searchField.delegate = self
}
}
在我设置如上所述的委托之前,搜索字段运行良好,没有任何问题。 一旦设置好,如果编辑和清除,我就无法退出。
请你解释一下为什么会这样?这个问题可以与大纲视图相关吗?我之前使用过NSSearchField,它总是运行良好。
答案 0 :(得分:0)
问题的根源是在NSViewController中声明的下一个方法,它阻止在大纲视图中保存空单元格:
func control(_ control: NSControl, textShouldEndEditing fieldEditor: NSText) -> Bool {
// don't allow empty node names
return !(fieldEditor.string.isEmpty ?? true)
}
现在它在这种情况下处理NSSearchField
事件,而不是大纲视图表单元格编辑。