【问题标题】:Set border for NSTextField为 NSTextField 设置边框
【发布时间】:2016-08-09 02:46:15
【问题描述】:

哇,我真的掉进了兔子洞。我正在尝试在 UI 的一部分和文本字段的背景上放置文本作为另一部分,例如生日在:

然后我想重新调整该文本文件的用途以允许文本输入。所以我做了类似的事情:

myTextFieldName.editable = true
myTextFieldName.backgroundColor = NSColor.textBackgroundColor()

我得到类似的东西:

这一切都很好,但是我注意到它下面的文本字段周围有漂亮的细边框。所以我想,我需要一个边界!我添加一个:

myTextFieldName.bordered = true

...我得到:

哇!多么可怕的奇怪粗边框!它看起来根本不像默认的文本字段边框!对于我的生活,我无法弄清楚如何使“激活”文本字段的边框与默认值相匹配。有什么想法吗?

提前非常感谢!

【问题讨论】:

    标签: swift nstextfield


    【解决方案1】:

    需要设置边框和边框颜色:

    myTextFieldName.wantsLayer = true
    myTextFieldName.layer?.borderColor = NSColor(red:204.0/255.0, green:204.0/255.0, blue:204.0/255.0, alpha:1.0).cgColor
    myTextFieldName.layer?.borderWidth = 1.0
    myTextFieldName.layer?.cornerRadius = 0.0
    

    如果要圆角,请设置圆角半径。

    【讨论】:

    • 现在我真的掉进了兔子洞,试图访问文本框的图层,但是谢谢!
    • 我刚看到你的问题..你可能需要添加:myTextFieldName.needsLayer = true
    • 哇...我不知道您可以将 UIColor 与 NSTextField 一起使用。
    【解决方案2】:

    您可以为 NSTextfield 添加边框并根据您的需要对其进行自定义。

     let border = CALayer()
     border.borderColor =  NSColor.gray.cgColor
     border.autoresizingMask = [.layerHeightSizable, .layerWidthSizable]
     border.borderWidth = 1.0
    
     myTextFieldName.wantsLayer = true
     myTextFieldName.layer?.addSublayer(border)
     myTextFieldName.layer?.masksToBounds = true
    

    【讨论】:

    • 因为你明确设置了框架,如果框架没有更新,一旦 NSTextField 的大小发生变化,它就会中断。
    猜你喜欢
    • 2016-07-26
    • 1970-01-01
    • 1970-01-01
    • 2013-09-05
    • 1970-01-01
    • 2013-09-16
    • 2016-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多