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

Swift实现UITextField输入追加到UILabel显示(禁用数组)问题排查

错误原因

你在type方法内部声明了text局部变量,每次点击触发该方法时,这个变量都会被重新初始化为空字符串,之前的拼接内容会被直接清空,所以最终只会显示最新输入的内容。

修正方案
  • 将存储拼接结果的text变量移出方法,改为当前控制器的类属性,在控制器的整个生命周期内保留值
  • 新增输入合法性校验,避免空字符串也被拼接到结果中
  • 拼接时增加空格分隔旧内容和新内容

修正后的代码如下:

@IBOutlet weak var textTextField: UITextField!
@IBOutlet weak var textLabel: UILabel!

// 定义为类属性,全局保留拼接结果
var text: String = ""

@IBAction func type(_ sender: Any) {
    // 校验输入非空且不为空白内容
    guard let input = textTextField.text, !input.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty else {
        return
    }
    // 拼接逻辑:已有内容先加空格再拼接新输入,无内容直接赋值
    if text.isEmpty {
        text = input
    } else {
        text += " \(input)"
    }
    textLabel.text = text
    textTextField.text = nil
}

该方案直接使用字符串拼接实现需求,未使用数组,符合作业要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:18:04