Цель c изменить авторазмер NSRect в пользовательском представлении
Название довольно конкретно о том, что я хочу сделать. У меня есть пользовательский вид и я нарисовал некоторые элементы внутри этого вида. Как программно изменить свойства авторазмера? Я оглянулся и не смог найти ничего, что могло бы помочь мне в моем случае.
Цель C:
- (void)drawRect:(NSRect)HTMLContent {
NSGraphicsContext* gc = [NSGraphicsContext currentContext];
[gc saveGraphicsState];
int height = [[NSScreen mainScreen] frame].size.height;
int screenwidth = [[NSScreen mainScreen] frame].size.width;
int emailInnerContentWidth = screenwidth - 510;
// Horizontal Line
[[NSColor colorWithCalibratedRed:.8 green:.82 blue:.83 alpha:1] setFill];
NSBezierPath* drawingPath = [NSBezierPath bezierPathWithRect:NSMakeRect(337, 570, emailInnerContentWidth, 2)];
[drawingPath fill];
// Social Icon
NSRect outrect = NSMakeRect(355, 585, 58, 58);
[[NSColor lightGrayColor] setStroke];
[[NSColor colorWithPatternImage:[NSImage imageNamed:@"NoSocialIcon.png"]] setFill];
NSBezierPath* outcirclePath = [NSBezierPath bezierPath];
[outcirclePath appendBezierPathWithOvalInRect: outrect];
[[NSColor lightGrayColor] setStroke];[[NSImage imageNamed:@"NoSocialIcon.png"] drawInRect:outrect fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1];
[outcirclePath stroke];
// Restore graphics state
[gc restoreGraphicsState];
}
Я хочу установить эти 2 фигуры, чтобы не зависеть от изменения нижней части окна. Я хочу, чтобы это изменилось, когда вершина окна изменяет высоту. Я просмотрел документы Apple, и ничего не получалось. заранее спасибо
1 ответ
Решение
Итак, для каждой из двух фигур:
[shape setAutoresizingMask:NSViewNotSizable | NSViewMaxXMargin | NSViewMinYMargin];