所以我在现有窗口中绘制自定义视图时遇到问题。我有一个名为GraphView
的自定义类,用于在视图上绘制值图。图表每秒传递一次变量,并应通过setNeedsDisplay:YES
重新绘制。我可以让这个类在一个独立的xCode项目中工作,但为了使它能够工作,我必须控制 - 从Interface Builder中的自定义视图拖动到File's Owner
,视图将重绘。所有绘图代码在独立的xCode项目中都能正常工作,因此我知道我的drawRect
方法,并且所有其他视图方法都按照我打算的方式工作。如果我做同样的事情,我也可以让这个GraphView
在我当前的项目中工作,但applicationDidFinishLaunching
将无法运行。
以下是示例项目中代码的细分。
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// This code does not run when I drag the custom view's referencing outlet to File's Owner in IB
self.graph = [[GraphView alloc]init];
}
- (void)applicationWillTerminate:(NSNotification *)aNotification {
// Insert code here to tear down your application
}
-(IBAction)firstPoint:(id)sender{
[self.graph addNewPoint:[self.textValue floatValue]];
[self.graph setNeedsDisplay:YES];
}
@end
我缺少的部分是什么,以至于我不必在我的GraphView
到File's Owner
的InterfaceBuilder中建立连接,以便使用{更新视图{1}}。任何帮助或指示将不胜感激。
答案 0 :(得分:0)
如果您的GraphView由Interface Builder加载,则无需在代码中分配它。请务必在IB中注明好的班级名称。
另外,如果你真的想在代码中分配init你的GraphView并且不使用IB,不要忘记在你的窗口中添加子视图: