Перерисовка NSView - PullRequest
       8

Перерисовка NSView

5 голосов
/ 28 декабря 2011

Извините, если это было задано ранее, или это действительно глупый вопрос, но я не могу понять это.У меня есть NSView в моем интерфейсе, и я создал подкласс NSView в XCode.Затем с помощью инспектора идентичности я установил класс NSView как вновь созданный подкласс NSView.Представление хорошо рисуется, но теперь мне нужно перерисовать его, чтобы изменить строку внутри представления.Я почти уверен, что это связано с setNeedsDisplay, но на что я могу отправить сообщение?У меня нет конкретного экземпляра моего представления в коде, так как он находится в Интерфейсном Разработчике, что мне делать?Опять извините, если это глупо.Я еще не много сделал с NSView.Спросите больше информации, если вам это нужно.Спасибо!

1 Ответ

8 голосов
/ 29 декабря 2011

В имеющемся у вас подклассе контроллера представления добавьте ivar с типом вашего подкласса NSView.Объявите свойство на нем и пометьте его как розетку.

// ViewControllerSubclass.h
ViewType *myView;

@property(readwrite, assign) IBOutlet ViewType *myView;

// ViewControllerSubclass.m
@synthesize myView;

Теперь у вас есть розетка, подключите ее к представлению, которое вы спроектировали через IB.Для этого щелкните правой кнопкой мыши в IB на вашем подклассе контроллера представления (владелец файла), вы должны увидеть розетку в списке.

Как только вы это сделали, теперь вы можете отправлять сообщения представлению в своем коде.
Чтобы пометить представление как нуждающееся в перерисовке:

[myView setNeedsDisplay:YES];
...