私はおかしくなりそうだ!わからない。2番目のウィンドウを開始すると、2番目のウィンドウコントローラー内でメソッドが呼び出されます。この方法は多くの計算を行っており、アウトレットを介してラベルにいくつかの結果を入れる必要があります。ラベルは空のままです。それを機能させる方法がわかりません。
私のAppDelegate.m:
#import "AppDelegate.h"
#import "ToDoItem.h"
#import "ResultWindowController.h"
@implementation AppDelegate
- (IBAction)pushRun:(id)sender {
if (rwc)
{
[rwc close];
}
rwc = [[ResultWindowController alloc] init];
[rwc calculateResults];//add observer
[rwc setShouldCascadeWindows:NO]; //window re-opens at the same position
[rwc showWindow:self];
}
@end
私のResultWindowController.h:
#import <Cocoa/Cocoa.h>
@interface ResultWindowController : NSWindowController
{
}
@property (weak) IBOutlet NSTextField *outputResultAverageValue;
@property (weak) IBOutlet NSTextField *outputResultToleranceValue;
-(void)calculateResults;
@end
ResultWindowController.m:
-(void)awakeFromNib
{
NSString *initial =@"-";
[_outputResultAverageValue setStringValue:initial];
[_outputResultToleranceValue setStringValue:initial];
}
- (void)calculateResults
{
double resultAverageValue = 0, resultToleranceValue = 0;
//calculations
for-loop{
resultAverageValue = (maxresult + minresult)/2;
resultToleranceValue = (maxresult - minresult)/2;
}
NSLog(@"resultaverage is:%f", resultAverageValue);
[_outputResultAverageValue setDoubleValue:resultAverageValue];
[_outputResultToleranceValue setDoubleValue:resultToleranceValue];
}
NSLog
ラベルに表示したい値を教えてくれます。メソッドを使用してラベルを初期化することもできますawakeFromNib
。設計に失敗しましたか?メソッドの実行後にラベルが設定されていることを確認する必要がありcalculateResults
ますか?
前もって感謝します!!!