Использование NSPrintOperation в Какао - PullRequest
2 голосов
/ 18 января 2011

Я пишу основанное на документе приложение Mac OSX и читаю учебник, в котором рассказывается об использовании NSPrintOperation (по умолчанию нажатие кнопки print в моем приложении прямо сейчас выдает ошибку:

   printOperationWithSettings:error: is a subclass responsibility but has not been overridden.

Так что мне сказали использовать следующее:

    - (NSPrintOperation *)printOperationWithSettings:(NSDictionary *)ps error:(NSError **)e;
{
    NSPrintInfo *printInfo = [self printInfo];
    NSPrintOperation *printOp = [NSPrintOperation printOperationWithView:MyView
                                                               printInfo:printInfo];
    return printOp;

(где MyView - это имя представления, которое я хочу распечатать. Мой вопрос: где я могу назвать это представление? В Интерфейсном Разработчике? Я попытался «self», и это вызвало ошибку. Я все еще изучаю какао, поэтому я в замешательстве. Экземпляры в Интерфейсном Разработчике - это просто NSView и называются View (не уникальными). Любая помощь?

1 Ответ

1 голос
/ 18 января 2011

В файле .h вашего документа добавьте следующее:

@interface MyDocument : NSDocument {
    IBOutlet NSView      *myView;
}

@end

(Если на самом деле у вас есть собственный подкласс NSView, или представление, которое вы собираетесь печатать, является более конкретным видом (например, NSTableView), вы, вероятно, изменили бы тип на этот тип вместо общего NSView).

Затем в Интерфейсном Разработчике в файле пера вы, скорее всего, перетащите Control из объекта «Владелец файла» в представление, которое вы намерены распечатать. Когда вы увидите подсвеченный вид и отпустите его, вы должны получить всплывающее меню, в котором вы можете выбрать myView. Теперь вы, так сказать, подключили провода, так что вы можете иметь ссылку на этот конкретный вид в остальной части вашего кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...