我是Cocoa的新手,并试图弄清楚如何构建自定义小部件(视图?)。我对Safari的URL栏特别感兴趣,它的行为和看起来像一个文本字段,但两端都有按钮或至少可点击的组件。
我一直在做一些研究 - 主要是查看Hillegass的书和来自O'Reilly的 Cocoa和Objective-C:Up and Running - 关于自定义视图并尝试使用NSCells构建东西。这对我来说仍然非常模糊......我是否正在通过这一系列研究走上正轨?
任何人都可以快速分解网址栏可能是组成的小部件吗?
任何人都可以告诉我这是如何完成的,或者如果不这样做,请指出一些特别擅长解释此类事情的资源?
答案 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中)来设计窗口小部件,然后使用代码连接部件。