Отсутствует идентификатор для переключателя при попытке идентифицировать отправителя - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь идентифицировать нажатую радиокнопку с помощью идентификатора Создателя интерфейса.

enter image description here

 @IBAction func text_radio_changed(_ sender: Any) {
        let button:NSButton = sender as! NSButton
        let id:String = button.accessibilityIdentifier()
        print("===========>"+id)
    }

Но консоль продолжает печатать это

===========>

Нет идентификатора

Ответы [ 2 ]

3 голосов
/ 17 апреля 2020

button.accessibilityIdentifier - Идентификационный Идентификатор Доступности. Идентификационный идентификатор: button.identifier.

@IBAction func text_radio_changed(_ sender: Any) {
    let button:NSButton = sender as! NSButton
    let id:String = button.identifier!.rawValue
    print("===========>"+id)
}
1 голос
/ 17 апреля 2020

В вашем коде вы на самом деле пытаетесь получить доступ к идентификатору доступности, а это совсем другое. Для идентификации переключателя вы должны использовать теги. Установите тег для кнопки, а затем прочитайте его следующим образом.

@IBAction func text_radio_changed(_ sender: Any) {
    let button:NSButton = sender as! NSButton
    let id:Int = button.tag
    print("===========>"+id)
}

Примечание. На самом деле вы можете использовать идентификатор доступности, чтобы сделать то же самое. Отметьте этот другой похожий пост .

Обновление : ответ от "Виллек" кажется лучше (если он работает), я привык разрабатывается для iOS, и я не знал, что есть свойство идентификатора для NSButtons.

...