Где находится метод addTarget () NSControl? - PullRequest
0 голосов
/ 24 сентября 2018

Так что я не смотрел на Свифт / Какао уже несколько лет.Я только что создал простое приложение MacOS, используя Xcode 10.0 и вижу, что NSControl больше не имеет addTarget(...) метод.Похоже, что оно было заменено свойством target типа id.

. Как мне теперь добавить обработчики для таких вещей, как нажатия кнопок, поскольку мне нужно указать действие (например, нажатие), объектбыть вызванным и селектор для вызова этого объекта.


Решение:

let statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)
statusItem.button?.target = self
statusItem.button?.action = #selector(didClick(_:))

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Правильно, синтаксис на основе методов foo.addTarget(self) был заменен синтаксисом на основе свойств foo.target = self.Он все еще существует в UIKit, потому что в Cocoa Touch вы также должны указать управляющее событие.

И все соответствующие NSControl подклассы имеют init методов для передачи target и action

0 голосов
/ 24 сентября 2018

Это все еще там ... Возможно, вы захотите просмотреть документы как переподготовку.

https://developer.apple.com/documentation/uikit/uicontrol/1618259-addtarget

...