如何以编程方式创建NSSearchField?

时间:2010-08-20 05:22:14

标签: objective-c cocoa

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

谢谢!

2 个答案:

答案 0 :(得分:1)

这方面的神奇方法是

[mysearchfield sizeToFit]

将帧更改为最小宽度和高度。我在Cocoa语言包装中使用它,应用程序必须在没有IB的情况下完全构建GUI,并且它几乎适用于任何NSControl类,除了相同的情况(如小控件大小和NSComboBox)和仅给出NSPopUpButton的图标宽度。

另请参阅Apple的Human Interface Guid。像素大小是固定的,因此使用魔术像素常数没有危险。

答案 1 :(得分:0)

所以你是NSSearchField的子类?你想以编程方式创建它,但你并没有真正说明原因。那么你需要框架来进行自定义绘图吗?我认为当你覆盖绘图代码时,你应该试着看看哪种方法效果最好,换句话说,尝试高度,看看哪种适合或最适合你的应用程序设计。