内部にいくつかの単純なコードを含む IBAction があります。
-(IBAction)change:(id)sender {
[textfield setHidden:NO];
[self dolengthyaction];
}
'textfield' は nib ファイルの NSTextField で、-'dolengthyaction' は実行が完了するまでに約 1 分かかる関数です。
私の質問は、「dolengthyaction」の実行が完了するまでテキストフィールドが表示されないのはなぜですか? 長いアクションが始まる前に明らかにしてほしい。これは固有の問題ですか、それとも私のコードに何か問題がありますか? (または私のコードの別の部分で?)
私はまだプログラミングが得意ではないので、言葉遣いや書式設定が間違っていたら申し訳ありません。
編集: この IBAction と -dolengthyaction 以外にはあまりありません...
-(void)doLengthyAction {
sleep(10);
}
-(IBAction)change:(id)sender {
[textfield setHidden:NO];
[self doLengthyAction];
[textfield setHidden:YES];
}
私が実際にやりたいことは、アクションの実行中にラベルを表示し、完了したら非表示にすることだけです。
基本的にこれが意味することは、現在まったく表示されていないということです。
実際には、-doLengthyAction では sleep(10) ではなく、約 50 Mb の素材をコピーする NSFileManager 操作です。コードはかなり長いですが、投稿したい場合は投稿できます。sleep() でテストしましたが、どちらも機能しません。