NSTextField喜欢safari地址栏

时间:2011-01-13 03:39:20

标签: objective-c cocoa macos webview nstextfield

建立像safari中的地址字段的最佳方法是什么?

需要具有可编辑文本,并确定进度指示器背景。

1 个答案:

答案 0 :(得分:4)

您可以将NSTextField子类化并覆盖-drawRect:方法,以使用某种颜色或渐变(或其他)来填充整个宽度的适当百分比。如果我正确理解你的问题。

-(void)drawRect:(NSRect)dirtyRect {
    CGFloat progress = 0.33;

    NSRect progressRect = [self bounds];
    progressRect.size.width *= progress;

    [[NSColor colorWithCalibratedRed:0.0 green:0.0 blue:1.0 alpha:0.4] set];
    NSRectFillUsingOperation(progressRect, NSCompositeSourceOver);

    [super drawRect:dirtyRect];
}

显然,“进展”将来自您声明的属性,并根据模型进行更新。您需要确保setDrawsBackground:已关闭,或背景设置为[NSColor clearColor];才能看到您的自定义绘图。

这是上面代码中的一个镜头。

Tested Theory