親愛的同學可可程序員通過繪製,的NSView不會bezierpath
我想什麼來完成:
我有一個複選框,一個彈出式按鈕(這是隱藏的)和一個NSView我帆布。 如果選中了myCheckbox - >顯示popUpButton並通過NSView上的bezierPath繪製一條線。 如果myCheckbox未選中 - >再次隱藏彈出式按鈕和 「拉開」 路徑
的代碼:
- (IBAction)isChecked:(id)sender {
//if myChekcbox is checked, show the pop up button
if ([sender state]==NSOnState) {
NSLog(@"Checked");
[myPopUp setHidden:NO];
}
else
{
//if the checkbox is unchecked, hide the popupbutton
[myPopUp setHidden:YES];
NSLog(@"Unchecked");
}
//reload my drawrect method (reload the view)
[self setNeedsDisplay:YES];
}
- (void)drawRect:(NSRect)dirtyRect
{
//if the checkedbutton is checked, draw the line
if ([myCheckbox state]==NSOnState)
{
NSBezierPath *myPath = [NSBezierPath bezierPath];
[myPath moveToPoint:NSMakePoint(10, 20)];
[myPath lineToPoint:NSMakePoint(50, 20)];
[myPath setLineWidth:2];
[myPath stroke];
}
}
問題:
如果選中狀態= NSOnState彈出式按鈕是可見,但線路不會畫出,我想知道爲什麼......我個人認爲這是一個連接問題。
我上傳的工程文件(這是相當小35KB)位置:Drawing.zip
全球: 我讀過的NSView文檔和它的說法,只有一個提請視圖方式,它是通過drawRect方法。這是真的嗎?這是否是一種下降的方式來繪製視圖? (如果函數的觀點和setNeedsDisplay:YES的方法)
在此先感謝, 本
發現了問題:它是一個連接問題和 自我setNeedsDisplay:YES 應該是:MyView的setNeedsDisplay:YES 挺傻了!感謝您的幫助tho –