Cocoa中使用NSButton做一个仿真开关按钮
来源:互联网 发布:淘宝网非凡服饰 编辑:程序博客网 时间:2024/05/23 20:45
这次教大家做一个仿真的开关按钮,先看效果图。
介绍
Interface Builder里拖入一个按钮,选择类型为Switch,然后Image和Alternate里分别填上我们绘制好的2种状态的按钮图片,顺手把按钮大小调整好。 接下来就可以写代码了。
其实不写代码也可以,运行程序点击按钮已经可以切换了。只不过因为,我们希望用户点击按钮的时候可以尽量模拟真实按钮,对不同区域响应不同的行为。例如点击已经按下的部分,没有作用。而点击翘起的部分则会按下去。要实现这一交互细节的提高代码量非常之小。我们需要做的就是subclass一下NSButton然后重写mouseDown方法。接着在IB里把这个按钮的Class改成我们自己写的这个按钮类。
123456789101112131415
- (void)mouseDown:(NSEvent *)theEvent{ NSPoint loc = [self convertPoint:[theEvent locationInWindow] fromView:nil]; if (self.state==NSOnState) { NSRect offRect=NSMakeRect(4, 42, self.frame.size.width-8, 37); if (NSPointInRect(loc, offRect)) { [super mouseDown:theEvent]; } }else{ NSRect onRect=NSMakeRect(4, 5, self.frame.size.width-8, 37); if (NSPointInRect(loc, onRect)) { [super mouseDown:theEvent]; } }}
其实按钮的绘制才是关键。此例子中的按钮来自与Dribbble的 Billy 。
下载工程文件
SwitchButton.zip
0 0
- Cocoa中使用NSButton做一个仿真开关按钮
- 用NSButton做仿真开关
- cocos2d做开关按钮
- ToggleButton开关按钮使用
- [cocoa]Mac开发知识:NSButton使用及自定义/Safari调用/NSTextField
- Cocos2d-x中开关按钮类CCControlSwitch的使用
- Cocos2d-x中开关按钮类CCControlSwitch的使用
- Android中仿iphone开关按钮SwitchButton的基本使用
- ToggleButton 开关按钮使用代码
- NSButton
- Android中使用toast组件做一个点击按钮打招呼的程序
- 设计一个开关样式的双项单选按钮。
- 怎样实现一个潮流的开关按钮
- CSS3实现一个开关按钮控件
- cocoa开发之:自定义NSButton,为NSButton添加鼠标移入移出效果
- Cocoa:[系统控件重绘教程(二)]:重绘NSButton
- ToggleButton(开关按钮)和Switch(开关)的使用
- Cocos2d-x 中开关按钮切换
- C# Control的Invoke和BeginInvoke及其实现机制(消息循环)
- Java 线程Thread
- HDOJ 1312 Red and Black
- SSH原理与运用
- JavaScript中的原型和对象机制--超多实例
- Cocoa中使用NSButton做一个仿真开关按钮
- socket第三方库 AsyncSocket(GCDAsyncSocket)
- 用于html5 css3的编辑器有哪些
- 根据JS实现伪增长的注册人数
- STC12C5A60S2单片机双串口通信
- java在cmd下编译和执行引用jar的类
- Git教程
- 正向代理与反向代理的区别
- Linux中的ctrl+c,ctrl+d,ctrl+z