BTW, this is now filed as

rdar://5791056 [NSSearchFieldCell] Does not properly honor calls to -setControlSize:

Thanks again for everyone's help debugging this issue!


John Stiles wrote:
OK, I figured it out. My control's frame was too tall!

If you set the search field's frame to be more than 19 pixels tall, it creates a large-sized variant even if you explicitly asked for the small version. I was using 21 pixels, which is smaller than the regular size of 22 pixels—so it was cropping pixels—but not small enough, apparently.

This is entirely different from the rest of the controls in Cocoa, which honor the requested NSControlSize no matter what frame you use. You can make a mini NSButton with a 50-pixel tall frame, and it draws just fine. (The button just centers itself within its frame.)

I'll file a radar on this since it's clearly inconsistent, but at least there is a workaround! Thanks for the help, guys :)


Tom Bunch wrote:
It does seem to be order dependent. This works (though it does drop the baseline a pixel)

    [[searchField cell] setControlSize:NSSmallControlSize];
[searchField setFont:[NSFont systemFontOfSize:[NSFont systemFontSizeForControlSize:NSSmallControlSize]]];
    NSRect searchFrame = [searchField frame];
NSSize cellSize = [[searchField cell] cellSizeForBounds:searchFrame];
    searchFrame.size.height = cellSize.height;
    [searchField setFrame:searchFrame];

If you don't set the font first, cellSizeForBounds: doesn't give you the size you want.

-Tom

On Mar 10, 2008, at 3:45 PM, John Stiles wrote:

I've done all of these things, and so far no dice.

The small control clearly has a different overall look—for instance, the magnifying glass icon has a smaller variant which I do not see. Also, when I set the smaller frame, it's just using the big-size control and cutting off its bottom edge, which looks dumb.

I also tried calling -sizeToFit but this had no effect.

Any other ideas?


Jonathan Hess wrote:
Hey John -

IB also typically changes the cell's font, and the control's frame when you use the pop up in the control size inspector.

Hope that helps -
Jon Hess

On Mar 10, 2008, at 3:27 PM, John Stiles wrote:

Interface Builder can easily make a small variant of NSSearchField—it's right there in the size popup—but I can't manage to reproduce the effect in code. The typical approach doesn't work:

  [[searchField cell] setControlSize:NSSmallControlSize];

does nothing at all, though this does shrink almost any other control type I can think of. I searched the archives and found that another user had this problem in mid-2007, but there was no solution posted.
Any ideas?

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com <mailto:Cocoa-dev@lists.apple.com>)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/jhess%40apple.com

This email sent to [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com <mailto:Cocoa-dev@lists.apple.com>)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/tom%40omnigroup.com

This email sent to [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/jstiles%40blizzard.com

This email sent to [EMAIL PROTECTED]
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to