【问题标题】:Action is executing twice on performClick(nil)操作在 performClick(nil) 上执行两次
【发布时间】:2019-09-05 18:03:46
【问题描述】:

我的问题是我的 onClick 操作总是执行 2 次。我有以下代码:

override func awakeFromNib() {
    NotificationCenter.default.addObserver(
        self,
        selector: #selector(self.pressStartbutton),
        name: NSNotification.Name(rawValue: "Startbutton"),
        object: nil)
}

@objc private func pressStartbutton(notification: NSNotification){
    start_button.isEnabled=true
    start_button.performClick(nil)
}

每次执行“pressStartbutton”功能时,动作总是连续运行2次。代码应该怎么看才能只执行一次?

【问题讨论】:

  • 通知是否发送了2次? awakeFromNib 是否被调用了 2 次?
  • 好问题。来自另一个班级,我只称之为一次。不知道为什么 awakefromnib 会执行两次。
  • awakeFromNib() 可以被多次调用,例如如果视图包含一个表格视图。

标签: xcode macos swift5


【解决方案1】:

好的,问题解决了。我将 NotificationCenter 部分放入“viewDidLoad”而不是“awakeFromNib”。现在函数执行一次。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多