构建自定义小部件,如Safari的URL栏

时间:2011-06-17 03:01:01

标签: objective-c cocoa widget

我是Cocoa的新手,并试图弄清楚如何构建自定义小部件(视图?)。我对Safari的URL栏特别感兴趣,它的行为和看起来像一个文本字段,但两端都有按钮或至少可点击的组件。

我一直在做一些研究 - 主要是查看Hillegass的书和来自O'Reilly的 Cocoa和Objective-C:Up and Running - 关于自定义视图并尝试使用NSCells构建东西。这对我来说仍然非常模糊......我是否正在通过这一系列研究走上正轨?

任何人都可以快速分解网址栏可能是组成的小部件吗?

任何人都可以告诉我这是如何完成的,或者如果不这样做,请指出一些特别擅长解释此类事情的资源?

1 个答案:

答案 0 :(得分:0)

你走在正确的轨道上。您想要子类化NSView。从那里你可以实现 - (void)drawRect方法来做你自己的自定义绘图,或者你可以添加子视图,或两者兼而有。

//add some subviews
NSTextField * textField = [[[NSTextField alloc] initWithFrame:self.bounds] autorelease];
[self addSubview:textField];


NSButton * button = ...
[self addSubview:button];

您还可以使用Interface Builder(现在内置于XCode 4中)来设计窗口小部件,然后使用代码连接部件。