Storyboard 简称 SB ,这名字好傻的样子(-.-),下面都统称之为sb文件
其实Storyboard并不像名字那样那样傻,反而他十分的高级且智能(至少我现在是这样觉得的)
Stotyboard是在MAC或IOS系统上进行图形界面开发,而且IOS上居多,MAC资料较少所以很少有新手在MAC能马上入手,但其实两者的开发流程类似是差不多的。
XIB和SB本质都是将可视化的窗口转换成代码去创建控件,只不过XIB是轻量级的一般用来描述局部的控件,而SB是多个试图界面并且可以来实现整个项目的跳转。
故现在简单介绍一下MAC上Storyboard的开发和使用,以备新手学习。
1.新建一个工程
选择macOS中的Cocoa App,点击next
随便取一个名字,选择Objective-C并且勾选Use Storyboards
建立完成之后,可以看到有如下这些文件
其中,有一个Main.storyboard这个是我们的第一个SB文件,我们所有视图的UI界面都在这里设置, 其中AppDelegate里面有程序的入口用于初始化,而AppDelegate是在不断循环的程序和我们的代码之间进行通讯,AppDelegate对象是作为Application对象的委托属性还声明了一个NSwindow*window 的XIB文件的IBOutlet输出变量 这就让AppDelegate可以直接对window做一些操作 比如说windows的背景颜色等。ViewController就是UI界面的实现,所有的控件的具体实现都可以放在这里。Assets主要对工程中使用的图片资源进行统一管理,info里面是工程的配置文件,主要是对工程的一些配置进行设置。
点击Main.storyboard进去,进入主界面进行编辑
可以看到有这三个玩意:
1.最顶上的那个菜单栏叫Main Menu,就是我们程序运行之后电脑屏幕顶上的那个菜单栏。
2.中间的那个是NSWindow,可以用来设置背景颜色什么的,左边的箭头表示这个Window是当前storyboard的初始化Window。
3.底下的是一个NSViewcontroller,我们主要的界面显示都是通过设置这个东西来完成的,上面的箭头表示我们这个NSViewcontroller是属于一个NSWindow,依附在之上。
我们点击Window,右边有很多设置,具体自己可以研究一下,我们先修改Window的标题,
去Title那一栏,把Window改成你想要的标题。如:Testsb之类的...
然后点击下面那张图中的蓝色方块按钮,就是Viewcontroller的类按钮,右边有一个Custom Class把class绑定工程里面对应的类文件。
然后我们点击右上角那个⭕️按钮,那个按钮就是控件大全。
我们拖动一个Lable上来,并设置一些属性
再拖动一个push button进来,Vcl界面如下
这个时候点击编译运行,界面是这样的
点击goto好像也没有反应,那是为啥呢? ,因为我们没有写方法去实现这个按钮
下面我们实现push button这个按钮,弹出另一个视图。
新建一个Viewcontroller,快捷键command+N,选择macOS->Cocoa Class,点Next
下面有个勾选是否选择创建一个XIB到接口,这里我们用的SB,所以就不勾选上
我们在刚刚创造的.m文件中加入这行代码,这里viewDidLoad的方法是每次懒加载此次界面的时候第一个运行的方法,每次必运行。 可以运行看一下。
现在我们要把点击按钮的动作变成弹出Myviewcontroller这个界面
具体分为三步:
1.在SB里面创建视图控制器(1)(空间搜索View第一个就是的拖进去 ),并关联到类(2)(custom class 设置2),设置SB id(3)(在Identity里面设置Storyboard ID)。提示:第(1) 步是把视图控制器拖到SB里面。
2.实现按钮事件,点击右上角那两个⭕️的按钮可以实现两个界面左边为我们的SB文件,右边选择当前控件类的.h文件,然后按住control点击按钮,把它拖到右边的interface下面。
这里需要设置一些按钮的属性,connectlon我们选择Acttion,设置一个方法名字,然后点几connect,我们就已经绑定好啦。然后再科普一下Action和Outlet的区别:
outlet:输出口
可以理解为一个指针指向了nib中的控件对象,我们可以通过outlet来操作这个控件。
action:
操作一个控件后这个控件执行的方法。
3.设置按钮事件里面具体内容,我们往.m文件里面写入一下代码
添加之后就可以运行了,我们运行一下看一下效果
之后我们再讲讲XIB怎么玩, 主要是协议和委托代理
--作者小白一名,此文章仅供参考,有问题大佬可以联系我。