劃重點(diǎn):UIRemoteKeyboardWindow是UITextEffectsWindow的子類
擔(dān)心直接通過(guò)索引獲取這兩個(gè)window的安全性的小伙伴,可以通過(guò)遍歷判斷類名稱來(lái)獲取,這樣對(duì)不同系統(tǒng)版本的適配性更強(qiáng)、更安全。但是要注意UIRemoteKeyboardWindow是UITextEffectsWindow的子類。
話不多說(shuō),上代碼:
NSString *version= [UIDevice currentDevice].systemVersion;
UIWindow *keyboardWindow;
UIWindow *textEffectsWindow;
for (UIWindow *window in [[UIApplication sharedApplication] windows]) {
if ([window isKindOfClass:NSClassFromString(@"UITextEffectsWindow")]) {
if (version.doubleValue>=9.0) {
if ([windowisKindOfClass:NSClassFromString(@"UIRemoteKeyboardWindow")]) {
keyboardWindow = window;
} else {
textEffectsWindow = window;
}
} else {
textEffectsWindow = window;
}
}
}
if (keyboardWindow) {
keyboardWindow.center = CGPointMake([[UIScreen mainScreen] bounds].size.width*0.5f,[[UIScreen mainScreen] bounds].size.height*0.5f);
keyboardWindow.bounds = CGRectMake(0,0, windowWidth, windowHeight);
keyboardWindow.transform = CGAffineTransformMakeRotation(0);
}
if (textEffectsWindow) {
textEffectsWindow.center = CGPointMake([[UIScreen mainScreen] bounds].size.width*0.5f,[[UIScreen mainScreen] bounds].size.height*0.5f);
textEffectsWindow.bounds = CGRectMake(0,0, windowWidth, windowHeight);
textEffectsWindow.transform = CGAffineTransformMakeRotation(0);
}