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

macOS Swift开发中如何实现NSSecureTextField的文本垂直对齐

解决方案
  • 确认Interface Builder中修改的是正确的对象层级:NSSecureTextField是控件容器,内部嵌套了独立的NSSecureTextFieldCell实例,你需要在左侧文档大纲中展开对应的NSSecureTextField,选中其子元素Secure Text Field Cell,再在属性检查器中修改自定义类为PasswordCellField,不要直接修改外层NSSecureTextField的类。
  • 清理重复逻辑:你同时实现了drawingRect重写和adjustedFrame垂直居中逻辑,二者对文本布局的修改可能存在冲突,可先注释掉drawingRect的全部实现,仅保留edit、select、drawInterior、draw四个重写方法验证效果。
  • 强制触发控件重绘:在对应ViewController的viewDidLoad生命周期方法中,给目标密码输入框添加如下代码,强制刷新布局和渲染:
yourPasswordTextField.needsLayout = true
yourPasswordTextField.needsDisplay = true
  • 代码注入验证:如果IB修改始终不生效,可以用代码直接赋值自定义cell验证逻辑是否正确,在ViewController中添加代码:
let customCell = PasswordCellField()
customCell.isSecureTextEntry = true
yourPasswordTextField.cell = customCell

如果代码赋值后效果正常,即可确认是IB类绑定的操作错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 23:57:06