2013-04-27 68 views
0

我正在尝试为我的计算器应用程序创建一个“电源按钮”,它将打开/关闭计算器。我创建的按钮:添加电源按钮到计算器应用程序

-(IBAction) *Power; 

没有电源键,应用程序在液晶屏显示“0”,和我的按钮都在工作开始;但我怎么能告诉我的应用程序,液晶显示器应该显示“”,按钮不能被操纵,直到按下电源按钮?简单的if-then函数会起作用吗?我可以在if-thens中放置 - (IBAction)按钮吗?

回答

3

创建一个BOOL property,并在所有的IBACtions检查YES

您需要将其设置为YES/NO的方法Power,通常为:

initviewDidLoad,无论是适用的NO Initiaze它。

-(IBAction) power{ 
    self.powerOn=!self.powerOn; 
} 

-(IBAction) otherMethod{ 
    if(self.powerOn){ 
     //do your stuff 
    } 
} 

此外,方法指针-(IBAction) *Power;是不是你需要在这里。

+0

我会去启用/禁用用户交互在目标动作的电源按钮,如上所述 – Mario 2013-04-27 06:52:46

+1

@Mario:我没有找到启用/禁用用户交互。虽然这是最好的方法,但为此,他只需要将所有插座,textfiled设置为setEnabled:NO。 – 2013-04-27 06:56:45

+0

很好,谢谢。还有一件事 - 当我按下电源按钮时,如何更改UIButton的图像? – 2013-04-27 07:03:01

1

1)声明一个变量来跟踪电源开/关

@property(nonatomic, assign) BOOL powerOn; 
在viewDidLoad中

, 分配_powerOn = NO; or _powerOn = YES;

2)你的电源按钮按下事件的内部,

-(IBAction) Power;{ 
    //if on, then off 
    if(self.powerOn){ 
     //make display "" 
     self.powerOn = NO; 
    }else{ //if off, the on 
     self.powerOn = YES; 
     //make display "0" 
    } 
} 

3)在所有其他按钮单击事件中添加以下行作为第一行

-(IBAction) otherMethod{ 
     if(!self.powerOn) return; 

     //your code 
} 
+0

这很好,但我的应用程序默认开启电源。我能以某种方式改变它吗?另外,当按下电源按钮时,如何更改所有按钮的图像?我想模拟电源开启时“点亮”的按钮。谢谢! – 2013-04-27 06:54:32

+0

不要紧,如何在关闭电源的情况下启动应用程序。我没有看完整个答案。 :) – 2013-04-27 06:55:46

1

您需要为您的按钮创建IBOutlets,以便在运行应用程序时编辑它们的行为。 这些IBOutlets创建这样的:

IBOutlet UIButton *myPowerButton; 

你需要将它们用在Interface Builder您创建出路按钮链接。 您可以在其中指定“已启用”行为为“是”或“否”,以便用户可以使用或不使用电源按钮。 欲了解更多信息,请阅读有关IBOutlets和Buttons的Apples文档。

UIButton Apple Documentation

+0

我认为这是这个想法最优雅的方法。但是,我会定义一个outletCollection,并启用/禁用所有按钮。然后在您powerOnOff方法-setUserInteractionEnabled:为YES/NO为这些按钮和定义IB为您的禁用的按钮图像或代码与-setImage:forState:UIControlStateDisabled。 – Mario 2013-04-27 08:17:48

+0

你甚至都不需要设置其他照片,因为苹果的操作系统将灰色的按钮,以便您可以清楚地看到哪些是有用的,哪些are'nt。 – Maurice 2013-04-27 11:44:04

+0

我知道,但在意见接受的答案,任择议定书要求制定残疾人按钮的图片。 – Mario 2013-04-27 13:08:31

0

我会做这样一来,假设按钮的标题就是力量:

-(IBAction) Power 
{ 
    if(self.powerOn) 
    { 
     //make display "" 
     self.powerOn = NO; 
     for (UIView* subView in self.view.subviews) 
     { 
      if ([subView isMemberOfClass:[UIButton class]] && subView.titleLabel.text != @"Power") 
      subView.userInteractionEnabled = NO; 
     } 
    } 
    else 
    { //if off, the on 
     self.powerOn = YES; 
     //make display "0" 
    } 
} 

我会关闭所有其他按钮的用户互动时powerbutton关闭。

相关问题