在NSViewController子类中组织函数的替代方法?

时间:2016-04-27 02:52:38

标签: swift nsviewcontroller

(Swift,OSX)

我目前有一个视图控制器(名为ViewController),它通过故事板管理我的应用程序视图,其中包含几个用于用户输入的文本框。如果用户输入不正确的内容,它会调用一个函数来提醒用户他们的错误(使用NSAlert模态),并为他们提供一个选项:重置他们的输入,重置他们的输入和先前的输出,或者只是忽略窗口。

问题是,单独的警报代码大约是60行代码(具有显示适当消息的函数),我想将其移动到另一个类 - ViewController的子类,标题为{{1}因此,它仍然可以访问用户界面以适当地重置其输入(即清除输入字符串字段),并执行上述其他任务,同时避免ErrorResponse

中的大量功能

我尝试创建ViewController的子类,以便继承用户界面属性,我可以简单地访问它们,但是Xcode希望子类用NSCoder实现init方法。 (据我所知,这是Xcode如何设置故事板或.xib与控制器通信,作为NSViewController类的一部分,但这与我的implmenetation无关)。当我尝试传递ViewController或默认的初始化nil对象时,我会遇到模糊的崩溃。

那么,有没有办法组织这些功能?或者我应该将它们全部保存在ViewController中?

编辑:我还有一个名为NSCoder()的现有类,它会执行检查以查看是否有任何错误。在ViewContoller中,当输入输入时,有一个ErrorCheck语句,其中包含来自ErrorCheck的方法,如果输入在某种程度上无效,则调用guard中的相应方法。

代码段:

ErrorResponse

如果我不是ViewController的子类,还有另一个问题:我无法全局定义ErrorResponse的对象,因为我无法在相同的范围内传递UI值初始化,所以目前我已经在每个相应的函数中初始化了一个ErrorCheck对象......而且它很乱。

1 个答案:

答案 0 :(得分:0)

我最终只是将方法移动到ViewController中。不是最漂亮的,但它的功能。