用NSButton做仿真开关

这次教大家做一个仿真的开关按钮,先看效果图。

Black Switch Button 效果图

Black Switch Button 效果图

介绍

Interface Builder里拖入一个按钮,选择类型为Switch,然后Image和Alternate里分别填上我们绘制好的2种状态的按钮图片,顺手把按钮大小调整好。 接下来就可以写代码了。

其实不写代码也可以,运行程序点击按钮已经可以切换了。只不过因为,我们希望用户点击按钮的时候可以尽量模拟真实按钮,对不同区域响应不同的行为。例如点击已经按下的部分,没有作用。而点击翘起的部分则会按下去。要实现这一交互细节的提高代码量非常之小。我们需要做的就是subclass一下NSButton然后重写mouseDown方法。接着在IB里把这个按钮的Class改成我们自己写的这个按钮类。

其实按钮的绘制才是关键。此例子中的按钮来自与Dribbble的Billy

下载工程文件

SwitchButton.zip

  • 松虫虫

    哥,现在做Cocoa有什么好资料推荐下,我买了2本书,貌似没什么干货