當你想在點擊某個輸入框時彈出鍵盤,并且把UITableView或者ScrollView滾動到某個對應界面時,首先得獲取第一相應是誰;
代碼:
//首先通過這兩行代碼獲取第一相應
UIWindow * keyWindow = [[UIApplication sharedApplication] keyWindow];
UIView * firstResponder = [keyWindow performSelector:@selector(firstResponder)];
//然后再通過判斷響應類做出相應的響應
CGPoint firstPoint = CGPointZero;
if ([firstResponder isKindOfClass:[UITextField class]]) {
firstPoint = CGPointFromString(_firstResponderPointArray[0]);
} else if ([firstResponder isKindOfClass:[UITextView class]]) {
firstPoint = CGPointFromString(_firstResponderPointArray[1]);
}
NSDictionary * info = [aNotification userInfo];
NSValue * value = [info objectForKey:UIKeyboardFrameEndUserInfoKey];
CGSize keyboardSize = [value CGRectValue].size;
if (keyboardSize.height > 0) {
[UIView animateWithDuration:[FMSize getInstance].defaultAnimationDuration animations:^{
_scrollView.frame = CGRectMake(0, 0, _realWidth, _realHeight-keyboardSize.height);
[_scrollView setContentOffset:firstPoint];
_scrollView.bouncesZoom = NO;
}];
}