Я хочу реализовать функцию времени сеанса в моем текущем проекте. Поэтому для этого я пытаюсь подкласса UIWindow
и переопределять методы touchesBegan
и touchesEnded
.Подкласс UIWindow: событие Touches не срабатывает
class BaseWindow: UIWindow {
convenience init() {
self.init(frame: UIScreen.mainScreen().bounds)
}
private var sessionTimeOutTimer: NSTimer?
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
sessionTimeOutTimer?.invalidate()
}
override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {
sessionTimeOutTimer = NSTimer.scheduledTimerWithTimeInterval(60, target: CIAppManager.sharedManger(), selector: #selector(CIAppManager.sessionTimeOut), userInfo: nil, repeats: false)
}
}
В приложение делегата я сделал это
private let baseWindow = BaseWindow()
var window: UIWindow? {
get {
return baseWindow
}
set {}
}
Но проблема touchesBegan
и touchesEnded
не дозвонились. Я не могу понять, что я делаю неправильно.
Возможно, этот проект вам будет полезен: https: // github.com/marqeta/mqtimeout – shim
покажите нам весь ваш файл _app delegate_, пожалуйста, потому что у меня очень плохое представление о строке 'private let baseWindow = ...', которая, похоже, не служит какой-либо разумной цели, поэтому, пожалуйста, Файл __entire__ был бы более разговорчивым. – holex