插入文本并清除后无法退出 NSSearchField
Can't exit NSSearchField after inserted text and cleared it
我在我的 NSViewController 中添加了一个 NSSearchField,它是我的大纲视图的主控制器。现在它实现了下一个 类:
class MainCatalogNSViewController: NSViewController, NSOutlineViewDelegate, NSOutlineViewDataSource, NSSearchFieldDelegate {
override func viewDidLoad() {
super.viewDidLoad()
searchField.delegate = self
}
}
搜索字段运行良好,没有任何问题,直到我像上面那样设置委托。
设置后,如果被编辑和清除,我将无法退出。
你能解释一下为什么会这样吗?这个问题可能与大纲视图有关吗?我以前使用过 NSSearchField,它一直运行良好。
问题的根源是在 NSViewController 中声明的下一个方法,它阻止保存大纲视图中的空单元格:
func control(_ control: NSControl, textShouldEndEditing fieldEditor: NSText) -> Bool {
// don't allow empty node names
return !(fieldEditor.string.isEmpty ?? true)
}
现在在这种情况下它处理 NSSearchField
事件,而不是大纲视图 table 单元格编辑。
我在我的 NSViewController 中添加了一个 NSSearchField,它是我的大纲视图的主控制器。现在它实现了下一个 类:
class MainCatalogNSViewController: NSViewController, NSOutlineViewDelegate, NSOutlineViewDataSource, NSSearchFieldDelegate {
override func viewDidLoad() {
super.viewDidLoad()
searchField.delegate = self
}
}
搜索字段运行良好,没有任何问题,直到我像上面那样设置委托。 设置后,如果被编辑和清除,我将无法退出。
你能解释一下为什么会这样吗?这个问题可能与大纲视图有关吗?我以前使用过 NSSearchField,它一直运行良好。
问题的根源是在 NSViewController 中声明的下一个方法,它阻止保存大纲视图中的空单元格:
func control(_ control: NSControl, textShouldEndEditing fieldEditor: NSText) -> Bool {
// don't allow empty node names
return !(fieldEditor.string.isEmpty ?? true)
}
现在在这种情况下它处理 NSSearchField
事件,而不是大纲视图 table 单元格编辑。