Не могу выйти из NSSearchField после вставленного текста и очистки его - PullRequest
0 голосов
/ 29 мая 2018

Я добавил NSSearchField в мой NSViewController, который является основным контроллером моего представления структуры.Теперь он реализует следующие классы:

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

Поле поиска работает без проблем, пока я не установлю делегата, как указано выше.Как только он установлен, я не могу выйти из него, если он был отредактирован и очищен.

Не могли бы вы объяснить мне, почему это происходит?Может ли эта проблема быть связана с контурным представлением?Я раньше использовал NSSearchField, и он всегда работал хорошо.

enter image description here

1 Ответ

0 голосов
/ 29 мая 2018

Корень проблемы - следующий метод, объявленный в NSViewController, который предотвращает сохранение пустых ячеек в виде структуры:

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

И теперь он обрабатывает события NSSearchField в этомрегистр вместо редактирования ячеек таблицы в виде структуры.

...