вы сделали недействительным экземпляр self.clickTimer, вы должны сделать недействительным self.clickTimer
override func mouseUp(with event: NSEvent) {
if let timer = self.clickTimer {
self.clickTimer.invalidate()
}
}
Обновление
я вижу, вы не запускали clickTimer! сначала, если вы хотите сделать это, вы должны запустить эту переменную -> clickTimer.fire ()
тогда, когда вы хотели, вы должны сделать недействительным,
'Timer.scheduledTimer(timeInterval: 2.0, target: self, selector: #selector(close(timer:)), userInfo: nil, repeats: false)
автоматически запускается, когда вы хотите объявить clickTimer, но это не то, что вы хотите аннулировать !!!