NSTextField喜欢safari地址栏

Arl*_*son 8 macos cocoa objective-c webview nstextfield

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

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

d11*_*wtq 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];
}
Run Code Online (Sandbox Code Playgroud)

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

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

经检验的理论