当前位置: 首页 > 面试题库 >

如何在Swift中注册UndoManager?

蔚承天
2023-03-14
问题内容

如何在Swift中使用UndoManager(以前NSUndoManager)?

这是我尝试复制的一个Objective-C示例:

[[undoManager prepareWithInvocationTarget:self] myArgumentlessMethod];

但是,Swift似乎没有NSInvocation,这(似乎)意味着我无法在undoManager未实现的方法上调用方法。

我已经在Swift中尝试了基于对象的版本,但似乎使Playground崩溃了:

undoManager.registerUndoWithTarget(self, selector: Selector("myMethod"), object: nil)

但是它似乎崩溃了,即使我的对象接受了一个类型的参数 AnyObject?

在Swift中执行此操作的最佳方法是什么?有没有一种方法可以避免通过基于对象的注册发送不必要的对象?


问题答案:

我在一个Playground中尝试了这一方法,它可以完美地工作:

class UndoResponder: NSObject {
    @objc func myMethod() {
        print("Undone")
    }
}

var undoResponder = UndoResponder()
var undoManager = UndoManager()
undoManager.registerUndo(withTarget: undoResponder, selector: #selector(UndoResponder.myMethod), object: nil)
undoManager.undo()


 类似资料:
  • 我想能够在iOS7和iOS8上有通知,我已经成功地用ios8设置了它,但是iOS7我得到了一个错误,只有“lldb”,在“var mySetting...”行中没有其他内容。从我所读到的内容来看,这就是你在iOS7上注册它的方式,但它似乎不起作用!

  • 我想设置一个由多个步骤组成的用户注册。每个步骤将以条的形式突出显示。深灰色条将是完成的步骤,浅灰色条将是需要完成的步骤。似乎想不出这样做的方法。请建议。 我们可以在myfitnesspal注册中看到这一点。我在下图的红色框中突出显示了这一点。

  • 我的注册成功。将向邮件发送通知,其中包含有关跟踪链接的请求的文本,然后激活帐户。一切都很好,但不可能将此文本转换为模板,以便将变量存储在其中,并将其发送到邮局,但我不知道如何从java代码中放置thymeleaf 使用者getUsername()用户。getActivationCode() 在我的例子中,它们以相同的形式返回,它们不会给出它们对应的用户的值 我的胸腺 我正在尝试通过上下文读取此文件

  • 我有两个Spring应用程序(“客户端应用程序”和“服务应用程序”),它们已经注册到Eureka(并通过外部客户端进行对话)。但是,我必须与Solr的一个实例交谈,我被迫在属性文件中硬编码IP地址。我宁愿不这样做,而是使用Eureka进行服务发现。 问:有没有一种方法/插件可以让solr向Eureka注册,这样客户端就可以发现它(即使它是通过启动侦听器或某种方式编程实现的)? 我看过SolrAPI

  • 本文向大家介绍如何在C#中使用注册表,包括了如何在C#中使用注册表的使用技巧和注意事项,需要的朋友参考一下 一、什么是注册表         注册表是Microsoft Windows操作系统和其应用程序中的一个重要的层次型数据库,用于存储系统和应用程序的设置信息。由键(key,或称“项”)、子键(subkey,子项)和值项(value)构成。一个键就是树状数据结构中的一个节点,而子键就是这个节点

  • 我在Eclipse Juno中启动了一个DyanmicWeb项目,但现在我想继续在Netbean 7.3中工作。当我在Eclipse中创建Servlet时,默认情况下使用如下注释(而不是在中注册): 但是当我在Netbeans中创建一个servlet时,它没有显示注释,也没有将Servlet名称和映射放在web.xml中。 如何在 Netbeans 中设置我的项目以创建带有注释的 Servlet?