2013-04-27 45 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關閉。

相關問題