由于是iOS转macOS,所以习惯上还保留着很多的iOS的习惯,比如习惯用纯代码,不喜欢用Xib和SB。
macOS和iOS有很多的不同,其中就是很多如果使用纯代码的话,内在的一些方法就需要自己实现。
遇到了NSViewController的使用时,直接使用alloc init方法创建调用纯代码类,viewDidLoad的方法在macOS中是不会自动调用的。而且默认的NSViewController的view,也是为空,需要自己去绑定创建。如果没有绑定对应VC的View,那么在引用这个vc时会提示"Failed to set (contentViewController) user defined inspected property on (NSWindow): -[NSNib _initWithNibNamed:bundle:options:] could not load the nibName: XXXX in bundle (null)."
推荐使用xib去做对应的NSViewController创建会省事很多,如果依然要使用纯代码,那最好建立一个NSViewController基类,在里面实现对应的init方法,同时创建对应的view做绑定。