gpt4 book ai didi

objective-c - 自定义 NSToolbarItem 按钮未显示

转载 作者:行者123 更新时间:2023-12-03 17:52:10 29 4
gpt4 key购买 nike

我在应用程序的工具栏中有两个自定义 NSToolbarItems。每个类都有一个 NSButton,我在其中设置按钮,然后将工具栏项的 View 设置为按钮(例如停止按钮项):

@implementation RBSStopButtonToolbarItem

@synthesize button = _button;

-(id)initWithItemIdentifier:(NSString *)itemIdentifier
{
self = [super initWithItemIdentifier:itemIdentifier];

if(self)
{
// create button
_button = [[NSButton alloc] init];

// set the frame and bounds to be the same size
//[_button setFrameSize:NSMakeSize(64.0, 64.0)];
//[_button setBoundsSize:NSMakeSize(64.0, 64.0)];

// button will not have a visible border
[_button setBordered:NO];

// set the original and alternate images...names are "opposite"
[_button setImage:[NSImage imageNamed:@"StopButtonAlternateIcon"]];
[_button setAlternateImage:[NSImage imageNamed:@"StopButtonIcon"]];

// image position
[_button setImagePosition:NSImageOnly];

// set button type
[_button setButtonType:NSMomentaryChangeButton];

// button is transparent
[_button setTransparent:YES];

// set the toolbar item view to the button
[self setView:_button];


}
return self;
}

我为每个自定义 NSToolbarItem 都有一个 IBOutlet:

// toolbar item for start button
IBOutlet RBSStartButtonToolbarItem *_startButtonToolbarItem;

// toolbar item for stop button
IBOutlet RBSStopButtonToolbarItem *_stopButtonToolbarItem;

但是我在自定义 View 工具栏项目中没有看到图像: missing images for toolbar items图像是 .icns 类型。我尝试遵循的示例在这里: NSButton in NSToolbar item: click issue

有没有有经验的可以给点建议?

最佳答案

我不知道为什么,但是:

[NSToolbarItem initWithCoder:] 正在调用 [NSToolbarItem setImage:] ,然后在您拥有的按钮上调用 [NSButton setImage:]设置为工具栏项目的 View 。这会抹掉你所做的一切。

您引用的示例不是 NSToolbarItem 的子类。

我建议您也不要子类化 NSToolbarItem,而是通过界面生成器将常规 NSToolbarItem 添加到工具栏,然后在 awakeFromNib 中添加通过项目标识符找到该工具栏项目并将按钮设置为其 View 。

我已经验证这样做可以按预期工作。

关于objective-c - 自定义 NSToolbarItem 按钮未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23232295/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com