0

我在我的 NSViewController 中添加了一个 NSSearchField,它是我大纲视图的主控制器。现在它实现了下一个类:

class MainCatalogNSViewController: NSViewController, NSOutlineViewDelegate, NSOutlineViewDataSource, NSSearchFieldDelegate {
    override func viewDidLoad() {
        super.viewDidLoad()
        searchField.delegate = self
    }
}

在我如上所述设置委托之前,搜索字段运行良好,没有任何问题。一旦设置好,如果被编辑和清除,我就无法退出它。

你能解释一下为什么会这样吗?这个问题可以与大纲视图有关吗?我以前使用过 NSSearchField,它总是运行良好。

在此处输入图像描述

4

1 回答 1

0

问题的根源是在 NSViewController 中声明的 next 方法,它阻止了在大纲视图中保存空单元格:

func control(_ control: NSControl, textShouldEndEditing fieldEditor: NSText) -> Bool {
    // don't allow empty node names
    return !(fieldEditor.string.isEmpty ?? true)
}

现在它处理NSSearchField这种情况下的事件,而不是大纲视图表格单元格编辑。

于 2018-05-29T16:23:48.393 回答