我们可以监控statusBar点击事件吗?

时间:2017-06-02 09:10:13

标签: ios objective-c

用户点击statusBar时是否有通知?我想在用户点击statusBar时专门做一些事情,所以我需要知道事件的发生时间。

1 个答案:

答案 0 :(得分:0)

是的。通过这种方式点击解决方案。没有点击解决方案。因为状态栏不是像元素那样的按钮。:)

这是swift 3版本:

在Appdelegate函数中添加此行。

let statusBarTappedNotification = Notification(name: Notification.Name(rawValue: "statusBarTappedNotification"))

然后添加此功能。

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    super.touchesBegan(touches, with: event)

    let statusBarRect = UIApplication.shared.statusBarFrame
    guard let touchPoint = event?.allTouches?.first?.location(in: self.window) else { return }

    if statusBarRect.contains(touchPoint) {
        NotificationCenter.default.post(statusBarTappedNotification)
    }
}

现在,你正在使用的视图控制器中准备好烹饪。:)

NotificationCenter.default.addObserver(forName: statusBarTappedNotification.name, object: .none, queue: .none) { _ in
    print("Viola, i have been tapped!!!!")
}