macOS文本内容NSTestField
macOS文本内容NSTestField

macOS文本内容NSTestField

NSTextField 是 macOS 应用开发中用于显示和编辑文本内容的控件,属于 AppKit 框架的一部分。它类似于 iOS 中的 UITextField,但提供了更多功能和灵活性,适用于桌面环境。

基本用法

创建NSTestField:

NSTextField(frame: NSRect(x: 20, y: 20, width: 200, height: 24))

显示或让用户编辑一行或多行文本。

常见用途

1、显示文本:作为只读标签(Label)。

2、输入文本:允许用户输入文字。

3、多行文本:配合 isEditable 和 isSelectable 支持多行编辑。

4、格式化:可以设置字体、颜色、对齐方式、背景等样式。

常用属性

1、stringValue:String类型,获取或设置文本内容。

2、isEditable:Bool类型,是否可编辑。

3、isSelectable:Bool类型,是否可选中。

4、isBezeled:Bool类型,是否带边框。

5、isBordered:Bool类型,是否显示边框。

6、isEnabled:Bool类型,是否启用。

7、backgroundColor:NSColor?类型,设置背景色。

8、textColor:NSColor?类型,设置文字颜色。

9、font:NSFont?类型,设置字体。

使用场景

1、简单写法

let label = NSTextField(labelWithString: "欢迎使用")

这个方式会自动设置为不可编辑、不可选择、无边框、透明背景。

2、完整写法

let textField = NSTextField(frame: NSRect(x: 20, y: 20, width: 200, height: 24))
textField.stringValue = "请输入用户名"
textField.isEditable = true
textField.isBezeled = true
textField.isBordered = true
textField.font = NSFont.systemFont(ofSize: 14)
textField.backgroundColor = .white

3、响应事件

可以通过设置 delegate 或使用 target / action 方式监听文本变化或用户交互:

textField.target = self
textField.action = #selector(textDidChange(_:))

总结

NSTextField文本输入框,可以实现显示/编辑文本的功能。

如果想要在SwiftUI 中没有直接使用 NSTextField,但可以通过 NSViewRepresentable 封装 NSTextField,以实现高级自定义文本框。

相关文章

SwiftUI显示AppKit视图的NSViewRepresentable协议:https://fangjunyu.com/2025/07/02/swiftui%e6%98%be%e7%a4%baappkit%e8%a7%86%e5%9b%be%e7%9a%84nsviewrepresentable%e5%8d%8f%e8%ae%ae/

   

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开发者。

欢迎加入我们的 微信交流群QQ交流群,交流更多精彩内容!
微信交流群二维码 QQ交流群二维码

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注