【问题标题】:NSOutlineView, setFloatsGroupRows: not workingNSOutlineView,setFloatsGroupRows:不工作
【发布时间】:2014-04-15 05:54:38
【问题描述】:

我知道它应该可以工作,我可以在示例项目中看到它,但在我的示例项目中,我无法强制大纲视图浮动组行。代码很简单,除该功能外一切正常。可能我遗漏了一些明显的东西。

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    [self.outlineView setFloatsGroupRows:YES];
}

- (id)outlineView:(NSOutlineView *)outlineView child:(NSInteger)index ofItem:(id)item
{
    if (item == nil)
        return [@[@"1", @"2",@"3",@"4",@"5"] objectAtIndex:index];

    return nil;
}

- (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item
{
    return NO;
}

- (NSInteger)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item
{
    if (item == nil)
        return 5;

    return 0;
}

- (id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item
{
    return item;
}

- (NSView *)outlineView:(NSOutlineView *)outlineView viewForTableColumn:(NSTableColumn *)tableColumn item:(id)item
{
    NSTableCellView *tableCellView = [outlineView makeViewWithIdentifier:[tableColumn identifier] owner:self];

    return tableCellView;
}

- (BOOL)outlineView:(NSOutlineView *)outlineView isGroupItem:(id)item
{
    if ([@[@"1", @"2",@"3",@"4",@"5"] indexOfObject:item] == 0)
        return YES;
    return NO;
}

编辑我将 NSTableViewNSOutlineView 添加到我的项目中,添加了相同的数据源和委托方法以及表格视图的组行流,当大纲时视图的一个仍然没有。我想知道我错过了什么,为什么大纲视图的组行不想飞?..

【问题讨论】:

    标签: objective-c macos cocoa


    【解决方案1】:

    解决了。在 NSOultineView 中,组行仅在其子行上方浮动。它们不会浮在其他非组行上但 NSTableView 。因此,如果您有一个没有像我的示例中的子项的组行,那么它将不会浮动。

    在我看来,这是一个错误,或者至少应该为这两种情况提供一个选项(至少与表格视图行为保持一致)。

    【讨论】:

      【解决方案2】:

      确保 self.outlineView IBOutlet 连接到 xib 中的 NSOutlineView。

      【讨论】:

      • outlineView的局部声明隐藏了实例变量self.outlineView。尝试更改 self.outlineView 变量的名称。
      • 不走运...我将其更改为 anOutlineView,它已连接,我可以通过此变量设置其他属性,例如 backgroundColor,但是 setFloatsGroupRows 仍然没有效果,尽管它报告它已正确设置为 YES。 XCode 5,空白新项目。
      • 在xib中,在outlineView的属性检查器中,在Table View部分,有一个Float Group Rows复选框。也许?
      • 迈克,我找到了为什么它没有浮动,请参阅下面的答案。但是您能否上传您的 XCode 属性检查器的屏幕截图。我在我的版本中找不到这样的复选框,它不存在。谢谢你的帮助!这种支持总是鼓励继续寻找解决方案)
      • 我添加了大纲视图的属性检查器的公开表视图部分的屏幕。
      猜你喜欢
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多