我正在尝试对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);
}
我正在接口生成器中添加子类并将其分配给我的文本字段(单元格)。正常的文本字段一切正常。
但现在我想对NSSecureTextFields也这么做,但结果很奇怪。
焦点环是可见的,即使我将其设置为“无”。
NSSecureTextFieldCell的源代码与上面的源代码相同(当然,不同之处在于我对NSSecureTextFieldCell进行了子类化,而不是对NSTextFieldCell进行子类化),但是为什么它不在单元格底部显示行呢?为什么我把我的CustomCell类分配给单元格时会得到这个该死的焦点环呢?我只是不明白,这让我发疯。
Download Xcode Project File here (36 KB)
最佳答案
您可以使用以下代码删除viewDidLoad中的焦点环
self.SecuredTextField.focusRingType=NSFocusRingType.None
关于macos - Swift/OSX-在自定义的NSSecureTextField上禁用聚焦环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32799951/