标签: swiftui-texteditor

更改文本字段的禁用状态时出现“AttributeGraph:检测到循环”错误

当我更新isDisabled视图中的状态变量时,它会.disabled按预期更新文本字段的修饰符,但随后会导致控制台中出现大约 40 个以下错误实例(末尾具有不同的属性编号): === AttributeGraph: cycle detected through attribute 200472 ===

然后它说:AttributeGraphError[59460:4808136] [SwiftUI] Modifying state during view update, this will cause undefined behavior.

这是产生错误的代码的最小版本:

struct ContentView: View {
  @State var isDisabled = false
  @State var text = ""
  
  var body: some View {
    VStack {
      TextField("", text: $text)
        .textFieldStyle(.roundedBorder)
        .disabled(isDisabled)

      Button("Disable text field") { isDisabled = true }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我该如何修复这个错误?

debugging xcode swiftui swiftui-texteditor

8
推荐指数
1
解决办法
3333
查看次数

滚动到 SwiftUI 中的 TextEditor 光标位置

是否可以滚动到TextEditor当前光标位置?

我有 aList作为TextEditor最后一行。我滚动到最后一行,List以确保 位于TextEditor键盘上方。

问题是,由于我将滚动锚设置为.bottom,因此在编辑长文本时,当滚动视图滚动到行的底部时,顶部的文本不可见。

在此输入图像描述

您应该能够使用以下代码重新创建问题。只需输入一些长文本,然后尝试在顶部编辑该文本。


import SwiftUI


struct ContentView: View {

    @State var items: [String] = ["Apples", "Oranges", "Bananas", "Pears", "Mangos", "Grapefruit","Apples", "Oranges", "Bananas", "Pears", "Mangos", "Grapefruit"]

    @State private var newItemText : String = ""


    var body: some View {
        ScrollViewReader { (proxy: ScrollViewProxy) in
                List{
                     ForEach(items, id: \.self) {
                         Text("\($0)")
                     }
                     TextEditor(text: $newItemText)
                        .onChange(of: newItemText) { newValue in
                            proxy.scrollTo("New Item TextField", anchor: .bottom)
                        }.id("New Item TextField") …
Run Code Online (Sandbox Code Playgroud)

swift swiftui swiftui-list swiftui-texteditor

8
推荐指数
1
解决办法
4271
查看次数

检测 TextEditor SwiftUI 的键盘“提交按钮”按下

在 SwiftUI 上,TextField您可以使用修饰符为键盘的返回/提交按钮设置操作.onSubmit()。你如何实现同样的目标TextEditor?(.onSubmit()似乎不起作用。)

swiftui swiftui-texteditor

7
推荐指数
1
解决办法
4025
查看次数

如何将 SwiftUI TextEditor 的内容与视图的原点对齐?

在 SwiftUI 中,我试图让我的TextEditor内容与上面的内容保持一致Text。我有一个在 UIKit 中执行此操作的模式,但似乎无法在 SwiftUI 中找到正确的修饰符。

在所附的屏幕截图中,我希望文本原点为 (0,0)。粗略地说,不... (6, 12)。

在此输入图像描述

实施代码:

struct AttributedTraitField: View {
    let name: String
    @State private var value: String = "Placeholder"
    var body: some View {
        VStack(alignment: .leading, spacing: 0.0) {
            Text(name)
                .background(Color.blue)
            TextEditor(text: $value)
        }
        .padding(.all)
        .background(Color.green)
    }
}
Run Code Online (Sandbox Code Playgroud)

swiftui swiftui-texteditor

6
推荐指数
0
解决办法
645
查看次数

如何在 SwiftUI 中添加编号/项目符号列表?

如何在 SwiftUI 中做到这一点TextEditor?我想到从键盘读取返回。TextFieldonEditingChangedonCommit,但 TextEditor 没有。

在Notes应用程序中,它会自动检测编号列表,并具有用于添加项目符号列表的按钮。

我特别希望它在空行后添加数字/项目符号。(如果可能的话)

在此输入图像描述

swiftui swiftui-texteditor

5
推荐指数
1
解决办法
9427
查看次数