0

所以我在现有窗口中绘制自定义视图时遇到问题。我有一个名为的自定义类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

我缺少的部分是什么,这样我就不必在 InterfaceBuilder 中从我GraphView的 to中建立连接File's Owner来获取要更新的视图[self.graph setNeedsDisplay:YES]。任何帮助或方向将不胜感激。

4

1 回答 1

0

如果您的 GraphView 由 Interface Builder 加载,则无需在代码中分配它。一定要在 IB 中注明好类名。

另一件事,如果您真的想在代码中分配初始化 GraphView 并且不使用 IB,请不要忘记 addSubview: 它在您的窗口中。

于 2014-07-21T15:57:16.083 回答