You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xcode 9.2中Auto Layout下UITextField占位符显示为黑点问题求助

解决Xcode 9.2中UITextField占位符显示为黑点的问题

我之前也踩过这个Xcode 9.2的坑!这个是当时Auto Layout和UITextField占位符渲染的兼容性bug,给你几个亲测有效的解决办法:

  • 检查并重置占位符字体
    有时候自定义字体未正确加载,或者占位符的字体设置存在冲突,会导致渲染异常。可以手动设置attributedPlaceholder来强制指定字体:

    let placeholderText = "请输入内容"
    let attributes: [NSAttributedString.Key: Any] = [
        .font: UIFont.systemFont(ofSize: 14),
        .foregroundColor: UIColor.gray
    ]
    yourTextField.attributedPlaceholder = NSAttributedString(string: placeholderText, attributes: attributes)
    
  • 调整UITextField的高度约束
    如果TextField的高度约束设置得小于占位符字体的实际行高,就会出现占位符被挤压成黑点的情况。建议把高度约束调整到至少比字体高度大2-4pt(比如字体是14pt的话,高度设为20pt以上)。

  • 添加空的leftView触发重绘
    这是一个临时的workaround,很多开发者亲测有效:给TextField添加一个宽度为1pt的空leftView,强制触发布局重绘逻辑,就能正常显示占位符了:

    yourTextField.leftView = UIView(frame: CGRect(x: 0, y: 0, width: 1, height: 0))
    yourTextField.leftViewMode = .always
    
  • 升级Xcode版本(最彻底的方案)
    这个bug在Xcode 9.3及后续的版本中已经被官方修复了,如果项目允许的话,直接升级到更高版本的Xcode就能彻底解决这个问题。

内容的提问来源于stack exchange,提问作者YoungChul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:10:48