NSTimerセレクタで[self setNeedsDisplay:YES]を呼び出して、drawRectメソッドをトリガしようとしました。その後NSTimer効果なし...?
- (void)drawRect:(NSRect)dirtyRect
{
NSLog(@"drawRect");
}
:
-(IBAction)buttonPush:(id)sender
{
myTimer = [NSTimer scheduledTimerWithTimeInterval:1.0
target:self
selector:@selector(myTimerAction:)
userInfo:nil
repeats:YES];
}
-(void)myTimerAction:(NSTimer *) timer
{
[self setNeedsDisplay:YES];
}
"setNeedsDisplay" が正常に呼び出されたが、のdrawRect内のコードが呼び出されることはありません:
は最初に、私はボタンFUNCにNSTimerのinitコードを置きます私はNSTimerのinitコードを " - (id)initWithFrame:(NSRect)frame"に移動しようとしましたが、すべて正常に動作します。 (drawRectは1秒ごとに正しく呼び出されます)。
上記2つの方法の違いは何ですか? ボタンでタイマーをトリガーしたい場合はどうすればよいですか?
説明からすべて正常に動作するはずです。バグや何が起こっているのかを何も示唆するものはありません。バグは他の場所です。より多くのコンテキストやコードを投稿する必要があります。 –
アクションをボタンに接続することを忘れていないと思いますか?あなたの '-buttonPush:'メソッドにNSLogステートメントを入れて、それが出力されているかどうか確認してください。 –