2

1 つを除いてすべてのボタンを無効にしてアプリケーションを起動しようとしています。まず、インターフェイス ビルダーを使用して無効に設定し、有効にする必要があるときに有効に設定しようとしました。ただし、 setEnabled: を呼び出すと、実際には有効になりません (NSLogs を実行して、そこに到達しているかどうかを確認しました!)。第 2 に、コード内で (applicationDidFinishLaunching: メソッド内で) 無効になるように初期化してから、再度有効に設定しようとしましたが、それでも機能しませんでした。必要なときに無効/有効にしようとする提案はありますか?

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
     [loadImageButton setEnabled:NO];
     [autoFitButton setEnabled:NO];
     [estimateAgeButton setEnabled:NO];
     [ageProgressButton setEnabled:NO];
}


- (IBAction)loadAAMModel:(id)sender
{
   ...
   ...
     if (waam.ModelLoaded) {
         [modelNameLabel setStringValue:f];
         [svmLabel setStringValue:svmPath];
         [ageTableLabel setStringValue:ageTable];
         NSLog(@"model loaded...set loadImageButton to Enabled!");
         [loadImageButton setEnabled:YES];
         NSLog(@"loadImageButton set to Enabled.");
    }
}
4

2 に答える 2

3

あなたがしていることはうまくいくはずです。あなたのボタンへの参照はnil. 次のような行を追加することで、これを確認できます。

NSLog(@"loadImageButton = %@", loadImageButton);

applicationDidFinishLaunching:

おそらく、Interface Builder でそれらを接続するのを怠っただけでしょう。

于 2010-11-20T02:26:18.957 に答える
0

DISABLEDまたはUNSELECTEDのことですか?

無効にすると、元に戻すまでボタンを操作できません (つまり、ボタンに触れてもアクションは発生しません)。setEnabled:YES

選択すると、BUTTON に選択されたコントロール状態 ( UIControlStateSelected) が割り当てられることを意味します。選択状態を変更するには、

[button setSelected:(BOOL)];

ボタンを初期化し、そのプロパティを設定しているコードを貼り付けていただければ、何が間違っているのかを簡単に特定できます。

于 2010-11-20T01:43:08.087 に答える