构建地址字段(如 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 - NSTextField 像 safari 地址栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4676555/