2015-04-30 1 views
1

Прежде чем я начну. Да, я смотрел документацию Apple, и я видел все вопросы, заданные здесь.AirPrint на iPad

Но по некоторым причинам эти ответы не работают со мной.

Я ищу печать с iPad. Этот код работает с iPhone. Когда я нажимаю кнопку печати, которую у меня есть, на iPad экран становится серым, и я могу нажать, но ничего не происходит.

Вот мой код для печати

- (IBAction)printButton:(id)sender { 
     NSMutableString *printFields = [NSMutableString  stringWithFormat:@"%@", _nameField.text]; 

    UIPrintInteractionController *pic = [UIPrintInteractionController sharedPrintController]; 
    pic.delegate = self; 


    UIPrintInfo *printInfo = [UIPrintInfo printInfo]; 
    printInfo.outputType = UIPrintInfoOutputGeneral; 
    printInfo.jobName = @"Printing sign up sheet."; 
    pic.printInfo = printInfo; 

    UISimpleTextPrintFormatter *textFormatter = [[UISimpleTextPrintFormatter alloc]initWithText:printFields]; 
    textFormatter.startPage = 0; 
    textFormatter.contentInsets = UIEdgeInsetsMake(72, 72, 72, 72); 
    textFormatter.maximumContentWidth = 6 * 72; 
    pic.printFormatter = textFormatter; 
    pic.showsPageRange = YES; 


    void(^completionHandler)(UIPrintInteractionController *, BOOL, NSError *) = ^(UIPrintInteractionController *printController, BOOL completed, NSError *error) { 
     if (!completed && error) { 
      NSLog(@"Print error: %@", error); 
     } 
    }; 

    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
     [pic presentFromRect:self.view.frame inView:self.view animated:YES completionHandler:completionHandler]; 
    } 
    else { 
     [pic presentAnimated:YES completionHandler:completionHandler]; 
    } 

} 

Если я делаю это на iPhone, он работает просто отлично. Но почему-то у iPad проблемы. Я действительно не знаю, что еще делать.

Если бы я имел 10 очков респ, я смог бы опубликовать серый экран, я уже упоминал, но я не могу сделать это, извините: (

+0

Вы представляете fromRect 'self.view.frame', который будет показывать диалог за пределами вашего представления (вне экрана). r кнопка печати. – Paulw11

+0

@ Paulw11 Как я могу это сделать? ** Я понял! ** спасибо, Пол! – Michael

+0

Вместо того, чтобы говорить 'fromRect: self.view.frame' say' fromRect: sender.frame' change 'sender' от 'id' до' UIButton * ' – Paulw11

ответ

0

Спасибо @ Paulw11, который показал мне, что мне нужно настоящее fromRect моей кнопки печати. ​​

Так что я сделал создать выход для моей кнопки и присутствует от этого, и это сработало!

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
     [pic presentFromRect:self.printOutlet.frame inView:self.view animated:YES completionHandler:completionHandler]; 
    } 
    else { 
     [pic presentAnimated:YES completionHandler:completionHandler]; 
    }