Заголовок говорит сам за себя: действие 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()
}
}
```