当CoreDataUndoManager有项目要撤消时,有人知道如何让菜单栏中的Undo命令启用吗?
以下是我所做的:
-
在应用程序初始化时,我正在设置核心数据持久性控制器UndoManager((
persistenceController.cotainer.viewContext.undoManager=undoManager((
-
我可以确认CoreData undoManager已设置,因为我可以通过编程调用undo,它可以工作(例如删除后(
-
但是,菜单栏中的"撤消"命令仍处于禁用状态。
顺便说一句,当我在TextField中写入文本时,菜单栏中的"撤消"命令可以正常工作(它可以自动撤消文本更改(
提前非常感谢,已经尝试了一段时间,在上找不到任何东西
上下文不清楚,但尝试(只是一个想法(从环境中使用Undo Manager,如
// ... somewhere in view where you change core data objects
@Environment(.managedObjectContext) var viewContext
@Environment(.undoManager) var undoManager
// ...
var body: some View {
// ...
.onAppear {
viewContext.undoManager = undoManager
}
}