рдПрдХ рджрд░реНрдЬрди рд▓рд╛рдЗрдиреЛрдВ рд╕реЗ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕реНрдкреНрд░рд┐рдВрдЧрдмреЛрд░реНрдб рдХреЛ рдиреАрдЪреЗ рд▓рд╛рддрд╛ рд╣реИ

рдХрд▓ рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ iOS рднреЗрджреНрдпрддрд╛ рдкрд░ рдХрд▓ рдареЛрдХрд░ рдЦрд╛рдИред IOS 6.1.2 рдХреЗ рд╕рд╛рде iPhone 4, 4S рдФрд░ 5 рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рдПрдХ рдмрдЧ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ рдЬреЛ рд╕реНрдкреНрд░рд┐рдВрдЧрдмреЙрд░реНрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ (рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЧрдП рд╕рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ), рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рджреЛ рдЪреАрдЬреЗрдВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
  1. рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╕рднреА рд╡рд┐рдВрдбреЛ (рдпрд╛рдиреА UIWindow рдСрдмреНрдЬреЗрдХреНрдЯ) рдЫреБрдкрд╛рдПрдВред
  2. рдЖрд╡реЗрджрди рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ


рдпрд╣рд╛рдВ рдПрдХ рд╕рд░рд▓ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рд╕реНрдкреНрд░рд┐рдВрдЧрдмрд╛рд░реНрдб рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред рдкреИрд░рд╛рдЧреНрд░рд╛рдл 1 рдФрд░ 2 рдХреЛ рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

 //       ,    warning' //    ,  Xcode   @interface UIWindow (Undocumented) + (NSArray*) allWindowsIncludingInternalWindows: (BOOL)internalWindows onlyVisibleWindows:(BOOL)visibleWindows; @end @interface UIApplication (Undocumented) - (void) suspend; @end //     void RESPRING() { NSArray *allWindows = [UIWindow allWindowsIncludingInternalWindows:YES onlyVisibleWindows:NO]; for (UIWindow *window in allWindows) { window.hidden = YES; } [[UIApplication sharedApplication] performSelector:@selector(suspend) withObject:nil afterDelay:0]; } 


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдЗрд╕ рдмрдЧ рдХреЛ рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред

рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ:


рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдЕрддреНрдпрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╕реНрдкреНрд░рд┐рдВрдЧрдмреЙрд░реНрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди (рдЕрдиреНрдп рд╕рднреА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рджреБрд░реНрдШрдЯрдирд╛ рд╕рд╣рд┐рдд) рдЖрд╕рд╛рдиреА рд╕реЗ рдРрдк рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдРрдкрд╕реНрдЯреЛрд░ рдореЗрдВ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВред

рдирд┐рдЬреА API рдХреЗ рдмрд┐рдирд╛ UPD :

 @interface UIView (Extension) - (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event; @end @implementation UIView (Extension) - (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { self.window.hidden = YES; } @end 

1. рд╕реНрдЯреЗрдЯрд╕ рдмрд╛рд░ рдкрд░ рдЯреИрдк рдХрд░реЗрдВ
2. рдореБрдЦреНрдп рд╡рд┐рдВрдбреЛ рдкрд░ рдЯреИрдк рдХрд░реЗрдВ
3. рдШрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ

UPD2 рдиреЗ рд▓реЗрдЦ рдХреЗ рд╢реАрд░реНрд╖рдХ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛, рдЬреИрд╕рд╛ рдХрд┐, рдХрдбрд╝рд╛рдИ рд╕реЗ рдмреЛрд▓рддреЗ рд╣реБрдП, рдХреЗрд╡рд▓ рд╕реНрдкреНрд░рд┐рдВрдЧрдмреЛрд░реНрдб рдХреНрд░реИрд╢, рдФрд░ рд╕рднреА iOS рдирд╣реАрдВред

Source: https://habr.com/ru/post/In171825/


All Articles