Настройка Programmati c действий для NSPopUpButton - PullRequest
0 голосов
/ 17 января 2020

Это очень простой ... запутанный мысленный вопрос. Я немного сбит с толку относительно того, как звонки работают с NSObjects, и я не могу заставить это работать вообще (несмотря на то, что ... что я предполагаю, очень просто).

Я создал NSViewController с соответствующим .xib. В XIB есть метка, всплывающая кнопка и обычная кнопка, показанные ниже.

enter image description here

Все, что я хочу, это чтобы кнопка отображала выбранный номер всплывающей кнопки. Достаточно просто настроить первый раз в коде, в View Controller.

class Root: NSViewController {
    //MARK: IBs
    @IBOutlet weak var noOfImages: NSPopUpButton!
    @IBOutlet weak var genButton: NSButton!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do view setup here.
        genButton.title = "Generate \(noOfImages.selectedItem?.title) Image"
        noOfImages.autoenablesItems = false

        //Adding target
        noOfImages.target = self
        noOfImages.action = #selector(imageValueChanged(_:))
    }

    @objc func imageValueChanged(_ sender: NSPopUpButton) {
        print("print changed")
    }

}

Или я так думаю. Моя imageValueChanged функция никогда не вызывается. Когда-либо. Я также попытался изменить @objc func на простой IBAction, и все же - ничего.

Я упускаю что-то явно очевидное в том, чтобы заставить действие зарегистрироваться? Это ошибка?

EDITED : Просто чтобы добавить - я попытался подключить действие и селектор только к NSButton. Ничего. Когда я sendAction с помощью кнопки, я получаю ответ. Я действительно понятия не имею, что происходит.

1 Ответ

0 голосов
/ 17 января 2020

В AppDelegate обязательно просмотрите contentViewController, а не contentView.

...