NSMenuItem действие не вызывается - PullRequest
0 голосов
/ 11 мая 2019

Заголовок говорит сам за себя: действие objcDeleteCurrentSelection NSMenuItem не будет вызываться при щелчке или эквиваленте ключа.Элемент и функция являются частью NSMenu, используемого в качестве меню окна приложения.

Я попытался установить цель как на ноль, так и на себя (NSMenu, который объявляет функцию).Я также пытался использовать такие параметры, как Any или AnyObject.NSMenuItem корректно включается или отключается.

К вашему сведению: реализация objcDeleteCurrentSelection вызывает функцию расширения протокола Swift.

class OptionsMenu : NSMenu, NSMenuDelegate, OptionsControllerDelegate {

    private var disposeBag = DisposeBag()
    private var deleteItem: NSMenuItem? = nil

    required init(coder decoder: NSCoder) {
        super.init(coder: decoder)
        item(withTitle: "Edit")?.isEnabled = true
        deleteItem = item(withTitle: "Edit")?.submenu?.item(withTitle: "Delete")
        deleteItem?.action = #selector(objcDeleteCurrentSelection)
        delegate = self
        self.onSelectionChange.subscribe { [weak self] in
            guard let it = $0.element else { return }
            let enableDelete = !it.0.isEmpty || !it.1.isEmpty
            self?.deleteItem?.isEnabled = enableDelete
        }.disposed(by: disposeBag)
    }

    @objc func objcDeleteCurrentSelection() {
        deleteCurrentSelection()
    }

}
```
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...