Objective c 是否可以调整NSTabViewItem按钮标签的大小?

Objective c 是否可以调整NSTabViewItem按钮标签的大小?,objective-c,macos,swift,nstabviewcontroller,Objective C,Macos,Swift,Nstabviewcontroller,如果将多个NSTabViewItems添加到NSTabViewController,则选项卡视图项按钮的大小将根据标签文本的长度确定。由于每个标签的文本不同,这可能会导致NSTabViewItem按钮的大小大不相同 是否有办法将按钮尺寸/宽度设置为IB中的特定尺寸?它可以在代码中动态完成吗?我认为这不能在Interface Builder中完成,但您应该能够将NSTabViewItem子类化,并重写-(NSSize)sizeOfLabel:(BOOL)computeMin,以返回所需的值。更多信

如果将多个NSTabViewItems添加到NSTabViewController,则选项卡视图项按钮的大小将根据标签文本的长度确定。由于每个标签的文本不同,这可能会导致NSTabViewItem按钮的大小大不相同


是否有办法将按钮尺寸/宽度设置为IB中的特定尺寸?它可以在代码中动态完成吗?

我认为这不能在Interface Builder中完成,但您应该能够将NSTabViewItem子类化,并重写
-(NSSize)sizeOfLabel:(BOOL)computeMin
,以返回所需的值。更多信息

例如,如果希望所有NSTabViewItem具有相同的100磅宽度:

@interface MyTabViewItem : NSTabViewItem
@end

@implementation MyTabViewItem
- (NSSize)sizeOfLabel:(BOOL)computeMin {

    NSSize size = [super sizeOfLabel:computeMin];
    size.width = 100.0
    return size;

}
@end

当然,您需要将NSTabView的项设置为MyTabViewItem的实例(在IB中或在代码中动态添加它们时)。

是的,我尝试过,但这只是更改了标签大小。调整标签大小会弹出tabviewitem的框架,但无法直接设置。即,高度不能调整。此外,宽度由标签大小+边距(不管是什么)决定。因此,在我看来,调整labelSize并不等于能够直接更改tabView项。您的问题标题相当误导,因为它明确提到“按钮标签”。标签高度也可以调整:只需返回具有所需高度的
NSSize
struct即可。但这并不能解决制表符填充的问题。你们有并没有想过怎么做?我注意到Spark电子邮件应用程序做了一些魔法,使他们的偏好标签间隔相等,填充均匀:不,对不起,那是很久以前的事了;-)