電卓のオン/オフを切り替える電卓アプリ用の「電源ボタン」を作成しようとしています。ボタンを作成しました:
-(IBAction) *Power;
電源ボタンがない場合、アプリは LCD ディスプレイで「0」から始まり、ボタンはすべて機能します。しかし、LCD に "" が表示され、電源ボタンを押すまでボタンを操作できないことをアプリに伝えるにはどうすればよいでしょうか? 単純な if-then 関数は機能しますか? -(IBAction) ボタンを if-then 内に配置できますか?
電卓のオン/オフを切り替える電卓アプリ用の「電源ボタン」を作成しようとしています。ボタンを作成しました:
-(IBAction) *Power;
電源ボタンがない場合、アプリは LCD ディスプレイで「0」から始まり、ボタンはすべて機能します。しかし、LCD に "" が表示され、電源ボタンを押すまでボタンを操作できないことをアプリに伝えるにはどうすればよいでしょうか? 単純な if-then 関数は機能しますか? -(IBAction) ボタンを if-then 内に配置できますか?
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
}
アプリの実行中にボタンの動作を編集するには、ボタンの IBOutlets を作成する必要があります。これらの IBOutlets は次のように作成されます。
IBOutlet UIButton *myPowerButton;
Outlet を作成した Interface Builder のボタンにそれらをリンクする必要があります。そこで、「有効」動作を YES または NO に指定できるため、ユーザーが作業できるかどうかを設定する電源ボタンを作成できます。詳細については、IBOutlets および Buttons に関する Apple のドキュメントを参照してください。
ボタンのタイトルが Power であると仮定すると、次のようになります。
-(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"
}
}
電源ボタンがオフの場合、他のすべてのボタンのユーザー操作を無効にします。