我正在尝试以编程方式创建NSSearchField;但是,我不知道如何找到标准NSSearchField的框架高度(在Interface Builder中的那些)。显然,我可以简单地从IB中的NSSearchField实体复制高度并使用该高度调用NSMakeFrame,但感觉hackish - 当Apple改变典型搜索字段的高度时会发生什么?我宁愿将高度硬编码到我的应用程序中。这更像是一个“最佳实践”问题,而不是“我根本无法让它工作”。
谢谢!
答案 0 :(得分:1)
这方面的神奇方法是
[mysearchfield sizeToFit]
将帧更改为最小宽度和高度。我在Cocoa语言包装中使用它,应用程序必须在没有IB的情况下完全构建GUI,并且它几乎适用于任何NSControl类,除了相同的情况(如小控件大小和NSComboBox)和仅给出NSPopUpButton的图标宽度。
另请参阅Apple的Human Interface Guid。像素大小是固定的,因此使用魔术像素常数没有危险。
答案 1 :(得分:0)
所以你是NSSearchField的子类?你想以编程方式创建它,但你并没有真正说明原因。那么你需要框架来进行自定义绘图吗?我认为当你覆盖绘图代码时,你应该试着看看哪种方法效果最好,换句话说,尝试高度,看看哪种适合或最适合你的应用程序设计。