iOS开发,我使用下面代码截取屏幕的时候,可以截取到系统键盘,但是第三方键盘无法截取到?大神帮忙看看

iOS开发,我使用下面代码截取屏幕的时候,可以截取到系统键盘,但是第三方键盘无法截取到?大神帮忙看看???

  • (UIImage *)screenshotImage
    {
    CGSize imageSize = CGSizeZero;
    UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;
    if (UIInterfaceOrientationIsPortrait(orientation))
    imageSize = [UIScreen mainScreen].bounds.size;
    else
    imageSize = CGSizeMake([UIScreen mainScreen].bounds.size.height, [UIScreen mainScreen].bounds.size.width);

    UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0);
    CGContextRef context = UIGraphicsGetCurrentContext();
    AppDelegate *app = (AppDelegate *)[UIApplication sharedApplication].delegate;
    for (UIWindow *window in [[UIApplication sharedApplication] windows])
    {
    CGContextSaveGState(context);
    CGContextTranslateCTM(context, window.center.x, window.center.y);
    CGContextConcatCTM(context, window.transform);
    CGContextTranslateCTM(context, -window.bounds.size.width * window.layer.anchorPoint.x, -window.bounds.size.height * window.layer.anchorPoint.y);
    if (orientation == UIInterfaceOrientationLandscapeLeft)
    {
    CGContextRotateCTM(context, M_PI_2);
    CGContextTranslateCTM(context, 0, -imageSize.width);
    }
    else if (orientation == UIInterfaceOrientationLandscapeRight)
    {
    CGContextRotateCTM(context, -M_PI_2);
    CGContextTranslateCTM(context, -imageSize.height, 0);
    } else if (orientation == UIInterfaceOrientationPortraitUpsideDown) {
    CGContextRotateCTM(context, M_PI);
    CGContextTranslateCTM(context, -imageSize.width, -imageSize.height);
    }
    [window.layer renderInContext:context];
    CGContextRestoreGState(context);
    }
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return image;
    }

sogo键盘截图
图片说明

系统键盘截图
图片说明