Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在编辑核心数据类实例字符串时,SwiftUI列表中的TextField是否存在光标定位错误?_Swift_Core Data_Swiftui_Textfield_Swiftui List - Fatal编程技术网

在编辑核心数据类实例字符串时,SwiftUI列表中的TextField是否存在光标定位错误?

在编辑核心数据类实例字符串时,SwiftUI列表中的TextField是否存在光标定位错误?,swift,core-data,swiftui,textfield,swiftui-list,Swift,Core Data,Swiftui,Textfield,Swiftui List,在SwiftUI列表中的文本字段中编辑文本时,是否发生光标定位错误?有没有办法避免这种情况?见视频和代码附件 注意-不确定这是否重要,但是gcTask是一个NSManagedObject(即核心数据类实例) 更新:现已确认此问题与TextField字符串变量绑定到核心数据类实例字符串属性的情况直接相关。在这种情况下,核心数据NSManagedClass GCTask具有字符串属性“title”。这就是为什么我的核心数据使用会出现这个问题,而如果我只使用了一个局部@State字符串变量,则不会出现

在SwiftUI列表中的文本字段中编辑文本时,是否发生光标定位错误?有没有办法避免这种情况?见视频和代码附件

注意-不确定这是否重要,但是gcTask是一个NSManagedObject(即核心数据类实例)

更新:现已确认此问题与TextField字符串变量绑定到核心数据类实例字符串属性的情况直接相关。在这种情况下,核心数据NSManagedClass GCTask具有字符串属性“title”。这就是为什么我的核心数据使用会出现这个问题,而如果我只使用了一个局部@State字符串变量,则不会出现这个问题的原因

背景:希望有一个简单的待办事项列表,能够点击一行并在线编辑,这在一些应用程序中确实可以看到。只是想了解如何在SwiftUI中实现这一点

代码:

动画GIF-单击文本字段并键入1,2,3,4,5时会发生什么情况:


以下简单测试在ios 13.4.1和catalyst上运行良好。 这表明gcTask是问题的根源

import SwiftUI

struct ContentView: View {
@State var gcTask = "xxxx"
@State var beingEdited = false
var body: some View {
    List {
        TextField("Enter:", text: $gcTask,
            onEditingChanged: { changed in
                print("\(self.gcTask)  => onEditingChanged = \(changed)")
                self.beingEdited = changed
        },
            onCommit: {
                print("\(self.gcTask)  => onCommit")
                // where I'll put code to save/finalise update
        }
        )
    }
}
}

tks-让我试试-re gcTask(从我的核心数据gcTask类),我在问题中为视图添加了更多代码-不知道这会触发问题(相对于局部@State变量)?是的,确认它特定于我的gcTask核心数据实例属性。我会更新这个问题,让它更清楚。
import SwiftUI

struct ContentView: View {
@State var gcTask = "xxxx"
@State var beingEdited = false
var body: some View {
    List {
        TextField("Enter:", text: $gcTask,
            onEditingChanged: { changed in
                print("\(self.gcTask)  => onEditingChanged = \(changed)")
                self.beingEdited = changed
        },
            onCommit: {
                print("\(self.gcTask)  => onCommit")
                // where I'll put code to save/finalise update
        }
        )
    }
}
}