当前位置:  开发笔记 > IOS > 正文

如何设置用于多面板首选项窗口的NSToolbar的init状态?

如何解决《如何设置用于多面板首选项窗口的NSToolbar的init状态?》经验,为你挑选了1个好方法。

我正在尝试使用NSToolbar编写多面板首选项窗口,如许多Mac应用程序中所示.有一些教程通过以编程方式填充工具栏来实现这一点,但这似乎需要大量的"机械"代码,我认为通过在IB中设置整个工具栏来保存.每个NSToolbar项调用下面的操作,标记用于选择视图(使用IBOutlet从相同的nib引用):

-(IBAction)changeViewController:(id) sender {
    NSToolbarItem *tbi = (NSToolbarItem*)sender;
    NSString* label = [tbi label];
    NSInteger tag = [tbi tag];
    [self displayViewController:tag];
    NSWindow* window = [self window];
    [window setTitle:label];
}

然后我在每个NSToolbarItem上设置Autovalidates,它将在工具栏项上给出选定/取消选择的外观.

现在这是我的问题:我无法找到设置初始状态的好方法.当我打开窗口时,没有选择任何工具栏项目,我也没有得到任何udpate代码,这将允许我正确选择它.我想出的是:

- (void) awakeFromNib { 
    [self displayViewController:kGeneralPrefsTag];
    NSWindow* window = [self window];
    NSToolbar *toolbar = [window toolbar];
    [toolbar setSelectedItemIdentifier:@"generalPreferences"];
    [window setTitle:@"General"];
}

这是所有冗余信息:1)我需要为此工具栏项声明项目标识符2)我手动复制第一个首选项面板的名称,以便能够设置窗口标题.

有没有更好的方法来初始化工具栏?我怎么能调用工具栏的第一项,以便它调用changeViewControllerAction?

谢谢.



1> Feloneous Ca..:

我正在使用工具栏选择不同的标签并使用以下内容:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    [item1 setEnabled: YES];
    [toolbar setSelectedItemIdentifier: @"needItToolbarItem"];

    [item2 setEnabled: YES];
    [item3 setEnabled: YES];
    [item4 setEnabled: YES];
}

这似乎让我得到了我想要的东西而没有太多的措辞.我不确定这是否是你正在寻找的答案,但看起来你是一个正确的轨道.

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有