我正在尝试一些 NSTextFields 的样式来获得像 Material Design 一样的单行文本字段。使用普通的 NSTextFields 我没有问题,效果很好。我将 NSTextFieldCell 子类化并绘制我的自定义单元格(仅在底部使用 1px 边框)。
代码是这样的:
override func drawWithFrame(cellFrame: NSRect, inView controlView: NSView) {
//let path:NSBezierPath = NSBezierPath.init(rect: cellFrame)
//path.fill()
var customRect = cellFrame
customRect.origin.y = cellFrame.size.height - 1
customRect.origin.x = 0;
let usedColor:NSColor = NSColor.grayColor()
usedColor.setFill()
let path = NSBezierPath.init(rect: customRect)
path.fill()
super.drawWithFrame(cellFrame, inView: controlView);
}
我在界面生成器中添加子类并将其分配给我的 TextField(Cell)。正常文本字段一切正常。
但是现在我想对 NSSecureTextFields 做同样的事情,但是结果很奇怪。对焦环是可见的,即使我将其设置为 NONE。
NSSecureTextFieldCell 的源代码与上面的相同(当然不同之处在于我将 NSSecureTextFieldCell 子类化而不是 NSTextFieldCell),但为什么它不显示单元格底部的行?当我将我的 CustomCell-Class 分配给 Cell 时,为什么会得到该死的聚焦环?我只是不明白,这让我发疯。