Цель 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];
Другие вопросы по тегам