Просто дополнение к ответу rokjarc.
Вот пример сторожевого пса, чтобы поддержать приложение.
Вы можете звонить всегда с некоторым критическим интервалом, возможно, 10 сек.
А если вам нужно включить в течение 10 секунд, просто вызовите метод «enable».
UIWindow * __weak mainWindow;
- (void)disableGlobalUserInteractionForTimeInterval:(NSTimeInterval)interval
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
mainWindow = [[[UIApplication sharedApplication] windows] lastObject];
});
[mainWindow setUserInteractionEnabled:false];
if (interval > 0)
{
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(interval * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self enableGlobalUserInteraction];
});
}
}
- (void)enableGlobalUserInteraction
{
if (mainWindow)
{
[mainWindow setUserInteractionEnabled:true];
}
}