gpt4 book ai didi

objective-c - NSToolbarDelegate 错误?

转载 作者:搜寻专家 更新时间:2023-10-30 19:56:35 26 4
gpt4 key购买 nike

我正在以编程方式创建 NSWindowController 及其窗口。所以我创建了一个简单的 NSToolbar :

NSToolbar *toolbar = [[NSToolbar alloc] initWithIdentifier:@"PreferencesToolbar"];

[toolbar setDisplayMode:NSToolbarDisplayModeIconAndLabel];
[toolbar setAllowsUserCustomization:NO];
[toolbar setAutosavesConfiguration:NO];

[self.window setToolbar:toolbar];

[toolbar release];

一切正常,但是当我添加 [工具栏 setDelegate:self];

我收到以下错误:

错误:委托(delegate)无效(未实现所有必需的方法),因此无法使用! (要调试,在 NSToolbarError 添加断点

根据 NSToolbarDelegate 没有必需的方法,那么这里出了什么问题?

最佳答案

为了使工具栏与你的 NSWindowController 子类一起工作,你必须声明它符合 NSToolbarDelegate 协议(protocol):

@interface MyController : NSWindowController <NSToolbarDelegate>

此外,来自 doc ,您必须确保某些实现,即使它们是可选的,因为您以编程方式创建了工具栏。他们是:

-(NSToolbarItem *)toolbar:(NSToolbar *)toolbar
itemForItemIdentifier:(NSString *)itemIdentifier
willBeInsertedIntoToolbar:(BOOL)flag;

-(NSArray *)toolbarAllowedItemIdentifiers:(NSToolbar *)toolbar;

-(NSArray *)toolbarDefaultItemIdentifiers:(NSToolbar *)toolbar;

Important While this method is marked as @optional in the NSToolbarDelegate protocol , it must be implemented if the associated toolbar is created programatically. Toolbars created in Interface Builder can implement this method to augment functionality.

关于objective-c - NSToolbarDelegate 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9467309/

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