如何将选项卡视图项连接到操作? (OS X上的Cocoa)

时间:2014-05-09 08:36:06

标签: objective-c macos cocoa

我想将OS X Cocoa Tab视图的选项卡链接到特定操作,但ctrl + drag不起作用。
found an other post of somebody that had about the same problem than I do,但它在iOS上,我无法适应OS X.我不知道我是否失败,因为我没有使用好的功能或者是因为其他原因。

以下是我在尝试调整另一篇文章中给出的方法时所做的事情: enter image description here

首先,我按住Ctrl键并从标签视图拖动到"文件的所有者"并使其成为这个代表。

然后,我将此代码添加到AppDelegate.h:

- (void)tabBar:(NSTabView *)tabBar didSelectItem:(NSTabViewItem *)item  

在AppDelegate.m上:

- (void)tabBar:(NSTabView *)tabBar didSelectItem:(NSTabViewItem *)item
{
    if([item.identifier isEqualTo:@1])
    {
        NSLog(@"Click !");
    }
}

我的标签的标识符" Apprendre"是1。

问题是当我运行此代码时,当我点击" Apprendre"标签。你知道我错在哪里吗?

1 个答案:

答案 0 :(得分:2)

您使用了错误的方法。

- (void)tabBar:(NSTabView *)tabBar didSelectItem:(NSTabViewItem *)item

相反它应该是

- (void)tabView:(NSTabView *)tabView didSelectTabViewItem:(NSTabViewItem *)tabViewItem

这是非常直接的。

NSTabView挂钩到代理人AppDelegate。 (确保正确连接到TabView本身而不是其部件)

enter image description here

然后检查每个标签的标识符和标签: enter image description here

然后委托方法如下:

- (void)tabView:(NSTabView *)tabView didSelectTabViewItem:(NSTabViewItem *)tabViewItem{

    if ([tabViewItem.identifier isEqualToString:@"1"]){
        NSLog(@"ONE");
    }
    else{
        NSLog(@"TWO");
    }
}