2010-11-20 3 views
2

私はすべてのボタンを無効にしてアプリケーションを起動しようとしています。まず、インターフェイスビルダーを使って無効にするように設定し、有効にする必要があるときに有効にするように設定しました。しかし、私がsetEnabledを呼び出すと、実際には有効になりません(NSLogsがそこに到達しているかどうかを確認することさえありました)。次に、コード内で無効にするために(applicationDidFinishLaunching:メソッド内で)それらを初期化しようとしましたが、もう一度enabledに設定しましたが、それでも動作しませんでした。誰かが私がそれらが必要な時にそれらを無効にしたり有効にしたりしようとする提案を持っていますか?NSButton setEnabledが機能しない

- (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."); 
    } 
} 

答えて

0

あなたはDISABLEDまたは未選択を意味していますか?

選択した場合は無効になっている場合は、あなたが戻っsetEnabled:YES

にそれらを設定するまで、あなたは(つまり、何のアクションがそれに触れてからもたらされません)ボタンと対話することはできません、それはあなたのボタンが選択を割り当てることを意味します制御状態(UIControlStateSelected)。あなたがボタンを初期化し、あなたが間違っているかもしれないものを識別することが容易になり、そのプロパティを設定しているコードを貼り付けてくださいできればその選択状態を変更するには、すべてあなたがしなければならない

[button setSelected:(BOOL)]; 

です。

3

あなたがしていることはうまくいくはずです。私はあなたのボタンへの参照がnilだと推測します。 applicationDidFinishLaunching:

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

:あなたは次のようにラインを置くことによってこれを確認することができます。

おそらくInterface Builderでワイヤリングするのを怠っただけです。

+0

wow ...それは二度私は今日それをやったことがあります...コントローラにそれらを引っ掛けていない!私はそれらにメソッドをリンクしましたが、それ以外には私はそれらをフックしませんでした。私の愚かさを認めてくれてありがとう! :) – Brandon

+0

喜んで助けてください。私は自分自身でそのエラーに見知らぬ人ではありません。 :) –

+0

@Brandonこの回答があなたの問題を解決した場合、あなたはそれを受け入れるべきです。(http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) – 11684

関連する問題