UndoManager的canUndo属性不会在SwiftUI中更新

PointOfNilReturn

为什么当堆栈中有操作时,@Environment UndoManager不更新其canUndo属性?我有一个视图,该视图的子级可以使用撤消/重做功能,但是由于某种原因,我无法基于管理器禁用撤消按钮。

struct MyView: View {
    @Environment(\.undoManager) var undoManager: UndoManager?

    var body: some View {
        Button("Undo") { ... }
            .disabled(!self.undoManager!.canUndo)
    }
}
他的脾气

UndoManager.canUndo 不符合KVO,因此请使用某些通知发布者来跟踪状态,如下所示

struct MyView: View {
    @Environment(\.undoManager) var undoManager
    @State private var canUndo = false

    // consider also other similar notifications
    private let undoObserver = NotificationCenter.default.publisher(for: .NSUndoManagerDidCloseUndoGroup)

    var body: some View {
        Button("Undo") { }
            .disabled(!canUndo)
            .onReceive(undoObserver) { _ in
                self.canUndo = self.undoManager!.canUndo
            }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用户默认值不会在列表SwiftUI中更新

来自分类Dev

SwiftUI视图不会在单独的视图中更新

来自分类Dev

为什么数据中的属性不会在 setInterval 中更新

来自分类Dev

Rails:一个属性只会在控制台中更新,而不会在浏览器中更新

来自分类Dev

通过使用groovy脚本,不会在SOAP UI中更新本地属性值

来自分类Dev

计算的属性不会在前端更新

来自分类Dev

不会在.xhtml中显示bean的属性

来自分类Dev

ng-model不会在IE中更新

来自分类Dev

OnActivityResult不会在Android中更新ImageView

来自分类Dev

一对多字段不会在JPA中更新

来自分类Dev

合并不会在JPA中更新

来自分类Dev

模型不会在Angular 2单选列表中更新

来自分类Dev

jQuery Timepicker不会在AngularJS指令中更新模型

来自分类Dev

QML对象不会在显示中更新

来自分类Dev

滚动后,UILabel不会在UITableViewCell中更新

来自分类Dev

行不会在数据库中更新

来自分类Dev

OnActivityResult不会在Android中更新ImageView

来自分类Dev

按钮不会在Internet Explorer中更新

来自分类Dev

PUT表单不会在Symfony 2中更新

来自分类Dev

输入值不会在托管Bean中更新

来自分类Dev

更改资产outputPath不会在html中更新

来自分类Dev

数据不会在数据库中更新

来自分类Dev

Observer 不会在 JavaFX GUI 中运行更新

来自分类Dev

React - 道具不会在整个组件中更新相同

来自分类Dev

SwiftUI JSON不会在ScrollView HStack中打印标题(但会在列表中显示)

来自分类Dev

SwiftUI:Picker不会在同一视图中更新文本

来自分类Dev

SwiftUI不会在嵌套NavigationLink目标中使用ObservedObject更新UI

来自分类Dev

Firestore不会在不重新加载应用程序的情况下更新SwiftUI网格

来自分类Dev

SwiftUI:Picker不会在同一视图中更新文本

Related 相关文章

  1. 1

    用户默认值不会在列表SwiftUI中更新

  2. 2

    SwiftUI视图不会在单独的视图中更新

  3. 3

    为什么数据中的属性不会在 setInterval 中更新

  4. 4

    Rails:一个属性只会在控制台中更新,而不会在浏览器中更新

  5. 5

    通过使用groovy脚本,不会在SOAP UI中更新本地属性值

  6. 6

    计算的属性不会在前端更新

  7. 7

    不会在.xhtml中显示bean的属性

  8. 8

    ng-model不会在IE中更新

  9. 9

    OnActivityResult不会在Android中更新ImageView

  10. 10

    一对多字段不会在JPA中更新

  11. 11

    合并不会在JPA中更新

  12. 12

    模型不会在Angular 2单选列表中更新

  13. 13

    jQuery Timepicker不会在AngularJS指令中更新模型

  14. 14

    QML对象不会在显示中更新

  15. 15

    滚动后,UILabel不会在UITableViewCell中更新

  16. 16

    行不会在数据库中更新

  17. 17

    OnActivityResult不会在Android中更新ImageView

  18. 18

    按钮不会在Internet Explorer中更新

  19. 19

    PUT表单不会在Symfony 2中更新

  20. 20

    输入值不会在托管Bean中更新

  21. 21

    更改资产outputPath不会在html中更新

  22. 22

    数据不会在数据库中更新

  23. 23

    Observer 不会在 JavaFX GUI 中运行更新

  24. 24

    React - 道具不会在整个组件中更新相同

  25. 25

    SwiftUI JSON不会在ScrollView HStack中打印标题(但会在列表中显示)

  26. 26

    SwiftUI:Picker不会在同一视图中更新文本

  27. 27

    SwiftUI不会在嵌套NavigationLink目标中使用ObservedObject更新UI

  28. 28

    Firestore不会在不重新加载应用程序的情况下更新SwiftUI网格

  29. 29

    SwiftUI:Picker不会在同一视图中更新文本

热门标签

归档