SwiftUI实现移除最后一个TextField按钮的方法咨询
解决SwiftUI添加/移除TextField的问题
你可以把按钮拆成两个独立的,分别处理添加和移除逻辑,同时要注意至少保留一个TextField(不然数组为空会导致界面报错)。修改后的代码如下:
import SwiftUI struct Test : View { @State var ingredientNames = [""] var body: some View { VStack { // 遍历生成TextField ForEach(ingredientNames.indices, id: \.self) { index in TextField("Name", text: $ingredientNames[index]) } // 横向排列添加和移除按钮 HStack(spacing: 20) { Button(action: { ingredientNames.append("") }) { Image(systemName: "plus.circle") .foregroundColor(.black) } Button(action: { // 确保至少保留一个输入框 if ingredientNames.count > 1 { ingredientNames.removeLast() } }) { Image(systemName: "minus.circle") .foregroundColor(.black) } } } } }
关键说明:
- 把原来的单个按钮拆成两个,放在
HStack里横向排列,操作逻辑更清晰 - 移除按钮中增加了数组长度判断,避免清空所有输入框引发错误
- 移除逻辑直接调用
removeLast(),就能删除最后生成的TextField
内容的提问来源于stack exchange,提问作者Wamakaz
相关产品推荐
相关产品推荐

