Пользовательский NSView с проблемой рисования подпредставления NSTextField - PullRequest
3 голосов
/ 17 февраля 2011

Итак, я рисую собственное окно (прозрачное) с настраиваемым NSView в качестве содержимого, и хотел бы также добавить NSTextField в окно, однако, когда я добавляю NSTextField, я получаю странное изменение размера или перерисовку Пользовательский NSView, и я не могу понять, что является причиной проблемы. И окно, и представление содержимого окна являются подклассами NSWindow и NSView соответственно. Кроме того, я попытался просто наложить пользовательский NSView (не устанавливая его в качестве содержимого) без изменений. Есть идеи?

    NSWindow *quickEntryWindow = [[TransparentWindow alloc] initWithContentRect:NSMakeRect([[NSScreen mainScreen] frame].size.width/2 - 250, [[NSScreen mainScreen] frame].size.height/2 + 50, 500, 100) 
                                                            styleMask:NSBorderlessWindowMask
                                                              backing:NSBackingStoreBuffered 
                                                                defer:NO
                                                              special:YES];
    BorderView *quickEntryBorderView = [[BorderView alloc] initWithFrame:NSMakeRect(0, 0, [[quickEntryWindow contentView] frame].size.width, [[quickEntryWindow contentView] frame].size.height)];
    [quickEntryBorderView canDrawConcurrently];
    [quickEntryWindow setContentView:quickEntryBorderView];
    NSTextField *quickEntryTextField = [[NSTextField alloc] initWithFrame:NSMakeRect(10, 10, [quickEntryBorderView frame].size.width-20, [quickEntryBorderView frame].size.height-20)];
    [quickEntryTextField setAutoresizingMask:NSViewNotSizable];
    [quickEntryTextField setBordered:NO];
    [quickEntryTextField setDrawsBackground:NO];
    [quickEntryTextField setFocusRingType:NSFocusRingTypeNone];
    [quickEntryTextField setFont:[NSFont fontWithName:@"Helvetica" size:42]];
    [quickEntryTextField setTextColor:[NSColor grayColor]];
    [quickEntryBorderView addSubview:quickEntryTextField];

То, что я получаю, выглядит примерно так (это нормально, когда текст не вводится в NSTextField): enter image description here

О да, я знаю, что не управляю своей памятью ... Я просто пытаюсь заставить это работать. Спасибо!

...