Cocoa学习之路 Slider调色实例
Cocoa学习之路 Slider调色实例是本文要介绍的内容,部所属,直接进入话题。这个开发实例是同过鼠标拖动滑条,调整三原色数值,从而改变最终合成的颜色。新人可借此练习 NSTextField,NSSlider,NSColor,NSObject 的使用。

1、新建一个Cocoa项目SliderColor
需要拖一个Text Field控件,和四个Horizontal Slider控件到窗口。这里用Text Field来显示颜色,Horizontal Slider分别为alpha,red,green,blue。Text Field属性设置为只读(Enabled),背景(Background)为黑色,Horizontal Slider最小值(Minimum)都设为0,最大值(Miximum)为1,并勾选Continuous(这个是为了拖动时就改变值),alpha当前值(Current)为1,其他的当前值都为0,
2、创建Controller(NSObject)
拖一个NSObject命名为ColorController,创建Outlets为:
alphaSlider blueSlider colorField greenSlider redSlider 创建Actions为: setAlpha setBlue setGreen setRed
把创建的Outlets和Actions和窗口中的控件进行相应的绑定(关联)后保存ColorController到项目中。
3.、在ColorController中写代码
需要在ColorController.h中添加float类型的变量来存储Slider的值和一个void类型的updateColor方法来更新颜色。最终代码如下:
#import <Cocoa/Cocoa.h>
@interface ColorController : NSObject {
IBOutlet NSSlider *alphaSlider;
IBOutlet NSSlider *blueSlider;
IBOutlet NSTextField *colorField;
IBOutlet NSSlider *greenSlider;
IBOutlet NSSlider *redSlider;
float redValue;
float blueValue;
float greenValue;
float alphaValue;
}
- (IBAction)setAlpha:(id)sender;
- (IBAction)setBlue:(id)sender;
- (IBAction)setGreen:(id)sender;
- (IBAction)setRed:(id)sender;
- (void)updateColor;
@end 在ColorController.m中添加updateColor方法来进行RGB颜色的转换和Text Field的背景颜色设置,在拖动调用updateColor。完整代码如下:
#import "ColorController.h"
@implementation ColorController
- (IBAction)setAlpha:(id)sender {
[self updateColor]; //调用updateColor方法
}
- (IBAction)setBlue:(id)sender {
[self updateColor];
}
- (IBAction)setGreen:(id)sender {
[self updateColor];
}
- (IBAction)setRed:(id)sender {
[self updateColor];
}
- (void)updateColor {
//获取RGB和Alpha值并赋值给变量
redValue = [转自redSlider floatValue];
greenValue = [greenSlider floatValue];
blueValue = [blueSlider floatValue];
alphaValue = [alphaSlider floatValue];
//根据获取的RGB和Alpha值创建颜色(NSColor)
NSColor *uColor = [NSColor colorWithCalibratedRed:redValue green:greenValue blue:blueValue alpha:alphaValue];
//设置TextField(colorField)背景颜色
[colorField setBackgroundColor:uColor];
}
@end