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

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

最佳答案

您可以只是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];才能看到您的自定义图形。

这是上面代码的截图。

关于objective-c - 像 Safari 地址栏的NSTextField,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4676555/

10-09 16:24