改变NSSearchField的风格

时间:2009-07-24 06:59:02

标签: objective-c cocoa

我想知道如何改变NSSearchField的外观,我很确定它会意味着对NSSearchField进行子类化,但是我不知道该怎么做就是编写代码来使它成为我想要的方式看。下面你可以看到我希望它看起来的样子以及它当前的样子。

alt text http://snapplr.com/snap/3f1r

如何使用代码使其看起来像这样(在左侧)? 我希望添加浮雕并减少内部阴影。

3 个答案:

答案 0 :(得分:3)

您需要创建自定义NSSearchFieldCell子类,并覆盖drawWithFrame:,然后将NSSearchField设置为使用该单元格。您可以在代码中绘制自定义边框,也可以使用端盖图像和水平平铺中心的背景图像。

这是an example旧代码,它使用后一种方法在NSSearchField是标准控件之前制作一个看起来像搜索字段的自定义NSTextField。

答案 1 :(得分:0)

老实说,左边的那个场看起来对我来说是双重打击。因此,您可以尝试覆盖drawRect:两次发送[super drawRect:]。 ☺

(真正的考验是如果你可以显示两个带有文字的字段。双击文字很容易被发现,绝对不是你想要的。)

答案 2 :(得分:-1)

如果您只想增加NSSearchField的大小,则不需要对其进行子类化,只需以编程方式创建搜索字段,并在initWithFrame期间提供所需的大小。

下面给出一个例子:

mySearchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0,44,320,70)];
    mySearchBar.autocorrectionType = UITextAutocorrectionTypeNo;
    mySearchBar.autocapitalizationType = UITextAutocapitalizationTypeNone;
    mySearchBar.showsCancelButton = NO;
    mySearchBar.delegate=self;
    [self.view addSubview:mySearchBar];

或者,如果您想要不同的外观,请指定它;我可以帮到你。