按下更改按钮功能?

时间:2012-03-27 13:56:47

标签: objective-c xcode macos cocoa nsbutton

我正在开发一个XCode 4.4项目,我需要在GUI中节省一些空间。我有两个按钮,每个按钮处理一个方法,一个用于打开设备电源,另一个用于关闭同一设备。

我的问题是如何将这两个按钮组合成一个,这样当用户按下电源按钮时,它会切换到电源关闭按钮等等。我需要能够更改按钮上的图标以显示更改。我认为这通常很容易实现。任何建议都将非常感谢,提前谢谢。

2 个答案:

答案 0 :(得分:0)

嗯,您需要做的就是按下按钮时,更新按钮以反映当前状态。因此,您将更改按钮上的图像,可能还会更改文本。只需查看NSButton的文档,了解您可以设置的内容。

所以你可以这样做:

- (IBAction)buttonWasPressed:(id)sender {
    if (device.isTurnedOn) {
        [device turnOff];
        [self.button setTitle:@"Turn On"];
    } else {
        [device turnOn];
        [self.button setTitle:@"Turn Off"];
    }
}

答案 1 :(得分:0)

您可以执行此操作。

- (IBAction)btnAction:(id)sender {

     NSButton *btn=(NSButton *)sender;

    [btn setTitle:([btn.title isEqualToString:@"On"] ? @"Off" : @"On")];

    if([btn.title isEqualToString:@"On"]){
        //Switch ON the device
    }else{
        //Switch OFF the device
    }
}