2010-08-20 128 views
1

我试图编程创建一个NSSearchField;然而,我不知道如何找到标准NSSearchField的框架高度(在Interface Builder中的那些框架高度)。显然,我可以简单地从IB中的NSSearchField实体复制高度并用该高度调用NSMakeFrame,但是这种感觉骇客 - 当苹果改变典型搜索领域的高度时会发生什么?我宁愿不将高度硬编码到我的应用程序中。这更多的是“最佳实践”问题,而不是“我根本无法解决它”。如何以编程方式创建NSSearchField?

谢谢!

回答

1

这种情况的魔术方法是

[mysearchfield sizeToFit]

这改变了帧的最小宽度和高度。我用Cocoa语言封装了应用程序必须完全没有IB构建它们的GUI,并且除了相同的情况(如小控制尺寸和NSComboBox)以及仅用于给图标的宽度NSPopUpButton外,它几乎适用于任何NSControl类。

也看看苹果的人机界面Guid。像素大小是固定的,所以使用魔术像素常量没有危险。

0

所以你是继承NSSearchField?你想以编程的方式来创建它,但你并没有真正清楚为什么。所以你需要框架来做你的自定义绘图?我认为,当你重写绘图代码时,你应该试着看看哪些最好,换句话说就是尝试高度,看看你的应用程序设计中哪个最适合或最适合。

+0

不是,不是继承。我只是将它实例化并放置在NSToolbar中。我知道这可以在IB中完成,但是我手动编写了这个特定的窗口(更像是一个练习,而不是其他任何内容。)我可以调用以下内容: NSSize searchFieldSize = NSMakeSize(400,50); [searchField setFrameSize:searchFieldSize]; 但这对我来说很脏。 – 2010-08-20 05:36:47