Я пытаюсь программно создать окно с настраиваемым contentView
и одним настраиваемым NSTextField
элементом управления, но у меня возникают проблемы с отображением этой иерархии окон и представлений.
Я создаю собственное окно без полей и переопределяю его setContentView
/ contentView
аксессоры. Кажется, это работает нормально, и вызываются пользовательские методы contentView initWithFrame
и drawRect
, заставляющие contentView правильно рисовать себя.
Но как только я пытаюсь программно добавить пользовательский NSTextField
в contentView
, он не добавляется и не отображается. Говоря custom, я имею в виду, что я переопределяю назначенный инициализатор (initWithFrame:frame
- только для настройки пользовательского шрифта) и метод drawRect, который выглядит так:
- (void)drawRect:(NSRect)rect {
NSRect bounds = [self bounds];
[super drawRect:bounds];
}
Инициализатор пользовательского contentView выглядит так:
- (id)initWithFrame:(NSRect)frame {
self = [super initWithFrame:frame];
if (self != nil) {
// i want to draw itself to the same
// size as contentView thus i'm using same frame
CustomTextField *textField = [[CustomTextField alloc] initWithFrame:frame];
[self addSubview:textField];
[self setNeedsDisplay:YES];
}
return self;
}
Я боролся с этим несколько часов, поэтому очень ценю любые указатели. Дополнительный код доступен по запросу.)