Я пытаюсь инициализировать значения внутри представления (созданного внутри файла пера) программно.
Я постараюсь сделать небольшой брифинг моего сценария:
У меня есть файл пера с видом внутри. В этом представлении есть несколько элементов (TextViews, CheckBox и т. Д.)
Предполагается, что это представление является шаблоном включения новых данных в мою программу (это не основное представление). Вот инициализация окон вида:
NewWindow = [[NSWindow alloc] initWithContentRect:frame
styleMask:( NSBorderlessWindowMask| NSClosableWindowMask | NSTitledWindowMask)
backing:NSBackingStoreBuffered
defer:NO];
[NewWindow setIsVisible:NO];
[NewWindow setReleasedWhenClosed:NO];
[NewWindow setBackgroundColor:[NSColor windowBackgroundColor]];
[NewWindow setContentView: MyView];
[NewWindow setDelegate:self];
Я называю окна, делающие его видимым.
MyView - это соединение IBOutlet с видом пера. Это представление является модифицированным NSView, и у него есть собственный файл класса.
Все в представлении (IBOutlets) подключено и работает правильно (я знаю, потому что, когда, например, я нажимаю кнопку, действие, связанное с ней, работает просто отлично).
Я создал метод инициализации в классе MyViews, чтобы инициализировать поля шаблона в соответствии с моими потребностями. Я называю инициализацию так:
[MyView initialize:InitClass];
Моя проблема, с которой я сталкиваюсь, заключается в том, что этот объект MyView отличается от объекта в файле пера, даже если все соединения (IBOutlets) подключены. Затем, когда я запускаю этот метод, ничего не происходит (так как метод initialize пытается изменить значение нераспределенных полей).
Я включил NSLog, чтобы увидеть адрес моих объектов, и подтвердил, что тот, что в файле пера, не совпадает с тем, что указан в IBOutlet
Я создаю это свойство IBOutlet следующим образом:
@property (assign) IBOutlet MyNewView *MyView;
Кто-нибудь знает, как решить эту проблему?