自定义NSView与NSTextField子视图绘图问题

时间:2011-02-16 21:58:44

标签: cocoa drawing nsview nswindow

所以我正在绘制一个自定义窗口(透明),其中自定义NSView作为内容视图,并且还想在窗口中添加NSTextField,但是,当我添加NSTextField时,我得到一个奇怪的调整大小或重绘自定义NSView,我无法弄清楚导致问题的原因。窗口和窗口的contentview分别是NSWindow和NSView的子类。此外,我试图只是将自定义NSView(不设置为contentview)分层而不做任何更改。有什么想法吗?

    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

噢,是的,我知道我没有管理我的记忆......我只是想让这个工作起来。谢谢!

0 个答案:

没有答案