cocoa:如何通过IB创建自定义视图?

时间:2012-07-31 08:01:06

标签: cocoa

我想创建一个自定义视图,比如MyView,它只包含一个按钮,当我点击它时打印出“hello my view”。当我下次想要使用它时,我只需要从IB向窗口添加自定义视图,将MyView.m添加到项目中并将自定义视图的类设置为MyView。

我的问题是:

  1. 我想使用IB来设置MyView的外观,但我不知道如何获取相应的视图文件:MyView.m以便下次使用MyView.m文件。

1 个答案:

答案 0 :(得分:1)

您需要使用代码创建子类视图;例如:

MyView.h:

#import <Cocoa/Cocoa.h>

@implementation MyView : NSView
{
    IBOutlet NSTextField *_label;
}

- (IBAction)buttonPressed:(id)sender;

@end

MyView.m:

#import "MyView.h"

- (id)initWithFrame:(NSRect)frame
{
    self = [super initWithFrame:frame];
    if (self != nil)
    {
        // Init here
    }
    return self;
}

- (void)awakeFromNib:
{
    // Init here
}

- (IBAction)buttonPressed:(id)sender
{
    [_label setStringValue:@"hello my view"];
}

@end

您需要使用IB创建自定义视图布局,并将拥有类从NSView更改为MyView(如果我记得,请使用第3个标签)。

然后从左窗格中的拥有对象连接_label(按住Ctrl键拖动),并将按钮操作连接到buttonPressed:方法(按住Ctrl键拖动)。