我試圖在NSTimer選擇器中調用[self setNeedsDisplay:YES]來觸發drawRect方法。NSTimer沒有影響...?
起初,我把的NSTimer初始化代碼的FUNC鍵:
-(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中的代碼不會被調用:
- (void)drawRect:(NSRect)dirtyRect
{
NSLog(@"drawRect");
}
然後我試圖將NSTimer init代碼移動到「 - (id)initWithFrame:(NSRect)框架」,然後一切正常。 (drawRect每1秒正確調用一次)。
以上兩種方法有什麼區別? 如果我想在按鈕中觸發定時器,我該怎麼辦?
從描述中,一切都應該正常工作。沒有錯誤或任何暗示發生了什麼問題。該錯誤在別處。你必須發佈更多的上下文或代碼。 – 2011-02-08 14:21:16
我假設你沒有忘記將動作連接到你的按鈕?嘗試在你的`-buttonPush:`方法中放一個NSLog語句,看看它是否被輸出。 – 2011-02-10 10:16:40