Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 帮助进行简单的5星级评级控制_Objective C_Cocoa_Macos_Controls - Fatal编程技术网

Objective c 帮助进行简单的5星级评级控制

Objective c 帮助进行简单的5星级评级控制,objective-c,cocoa,macos,controls,Objective C,Cocoa,Macos,Controls,我已经建立了一个相当简单的方法来在Xcode中应用一个5星级的等级,它在技术上是可行的,但有一个行为我不喜欢,也想改变。我从Xcode中的一个无线电组开始,为on和off状态设置自定义图像,然后为每个状态的选择器操作应用iAction。例如,三星收音机链接到以下操作: -(IBAction) star3Press: (id) sender { [star1 setState:1]; [star2 setState:1]; [star3 setState:1]; [

我已经建立了一个相当简单的方法来在Xcode中应用一个5星级的等级,它在技术上是可行的,但有一个行为我不喜欢,也想改变。我从Xcode中的一个无线电组开始,为on和off状态设置自定义图像,然后为每个状态的选择器操作应用iAction。例如,三星收音机链接到以下操作:

-(IBAction) star3Press: (id) sender
{
    [star1 setState:1];
    [star2 setState:1];
    [star3 setState:1];
    [star4 setState:0];
    [star5 setState:0];
}

这在第一次使用时效果很好,但如果我尝试在星星中下降,我单击的星星也会关闭。例如,如果我点击星号5,所有的5个都会亮起。如果我点击星号3,星号3、4和5将关闭。如果我再次单击3,它将重新打开。我更喜欢在五颗星都亮着的时候点击星号3,只关闭星号4和星号5。我假设问题是因为当我点击一个星号时,我的iAction首先被调用,然后它注册了关闭单选按钮的命令。有什么方法可以改变这种行为吗?

你有没有想过使用一个?这就是iTunes用来控制星级的方法。恒星图像是内置的,如果你不喜欢,你可以设置自己的图像。不需要建立自己的

将控件设置为具有的任何操作都可以查询指示器的当前级别:

- (IBAction) myLevelIndicatorAction:(id)sender {
    NSInteger currentLevel = [sender integerValue];

你有没有考虑过使用一个?这就是iTunes用来控制星级的方法。恒星图像是内置的,如果你不喜欢,你可以设置自己的图像。不需要建立自己的

将控件设置为具有的任何操作都可以查询指示器的当前级别:

- (IBAction) myLevelIndicatorAction:(id)sender {
    NSInteger currentLevel = [sender integerValue];

你确定当你点击star 3时,star 3 Press会被呼叫而不是star 2 Press我想那会是名字吗?你确定当你点击star 3时,star 3 Press会被呼叫而不是star 2 Press我想那会是名字吗?那正是我想要的。。。而且更容易设置。谢谢你朝着正确的方向努力!那正是我想要的。。。而且更容易设置。谢谢你朝着正确的方向努力!