macos开发 - 10.14 下光标、placeholder 不见了

 

问题:

10.14 下光标、placeholder 不见了

其实不是光标不见了,只是颜色是白色。
placeholder 可以使用上述方法(设置 setPlaceholderAttributedString)来设置。

 

解决:

分别创建NSTextField 和 NSScureTextField 的子类, 在子类方法中, 重写becomeFirstResponse方法, 在当前的textField变为第一响应的时候 对其做一些改变. 

在becomeFirstResponder方法内, 写入改变光标颜色的方法. 由于[self currentEditor] 总是会返回当前正在编辑的NSTextView, 所以可以使用NSTextView的insertPointColor方法来改变光标颜色. 具体代码如下

 override func becomeFirstResponder() -> Bool {
        let success = super.becomeFirstResponder()
        if success {
            let textview = self.currentEditor() as? NSTextView
            textview?.insertionPointColor = NSColor.red
        }
        return success
  }

有些文章中介绍说要自定义NSTextFieldCell和NSSecureTextField, 在其内部重写setUpFieldEditorAttributes:方法, 来对当前正在编辑的NSTextView进行设置setInsetPointColor,虽然原理是一样的, 但是实际操作中发现, 重写cell的setUpFieldEditorAttributes方法, 对NSSecureTextField并不起作用, 而且还会影响到SecureTextField的focusRing. 

override func setUpFieldEditorAttributes(_ textObj: NSText) -> NSText {
        let text = super.setUpFieldEditorAttributes(textObj) as? NSTextView
        text?.insertionPointColor = color_main_50
        return text!
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值