Cocoa通过编写NSButton代码,如何设置样式?

Cocoa通过编写NSButton代码,如何设置样式?,cocoa,nsbutton,Cocoa,Nsbutton,我用IB来做这件事,一切都很好,但当我写代码来做这件事时,我不知道, 如何使用IB获得相同的结果 在IB中,我将其设置为屏幕截图,我设置的图像在按钮中的大小相同,但当我使用代码时,图像仅显示一部分,表示, 当我使用IB设置时,图像将自动拉伸,但使用代码进行拉伸时,图像不会拉伸 有人能找到代码和IB截图之间的区别吗 1) 编写创建NSButton的代码如下: NSButton *tempBtn = [[NSButton alloc] initWithFrame: NSMakeRect(200, 2

我用IB来做这件事,一切都很好,但当我写代码来做这件事时,我不知道, 如何使用IB获得相同的结果

在IB中,我将其设置为屏幕截图,我设置的图像在按钮中的大小相同,但当我使用代码时,图像仅显示一部分,表示,
当我使用IB设置时,图像将自动拉伸,但使用代码进行拉伸时,图像不会拉伸

有人能找到代码和IB截图之间的区别吗

1) 编写创建NSButton的代码如下:

NSButton *tempBtn = [[NSButton alloc] initWithFrame: NSMakeRect(200, 200, 20, 20)];
[tempBtn setButtonType: NSMomentaryPushInButton];
[tempBtn setBezelStyle: NSRoundedDisclosureBezelStyle];
[tempBtn setBordered: NO];
[tempBtn setImage: [NSImage imageNamed: @"Basketball"]];
[tempBtn setImagePosition: NSImageOnly];
[tempBtn setTarget: self];
[tempBtn setAction: @selector(clickBtn:)];
[self.window.contentView addSubview: tempBtn];
[tempBtn release];
2) 在IB中设置如下:

结果如下:

NSButton *tempBtn = [[NSButton alloc] initWithFrame: NSMakeRect(200, 200, 20, 20)];
[tempBtn setButtonType: NSMomentaryPushInButton];
[tempBtn setBezelStyle: NSRoundedDisclosureBezelStyle];
[tempBtn setBordered: NO];
[tempBtn setImage: [NSImage imageNamed: @"Basketball"]];
[tempBtn setImagePosition: NSImageOnly];
[tempBtn setTarget: self];
[tempBtn setAction: @selector(clickBtn:)];
[self.window.contentView addSubview: tempBtn];
[tempBtn release];

您应该设置与按钮相关的单元格的图像缩放比例:

[tempBtn.cell setImageScaling:NSImageScaleProportionallyDown];