在NSTableView中隐藏按钮

时间:2013-08-21 17:14:01

标签: objective-c xcode macos cocoa

我有点陷入困境,似乎无法从苹果文档中解决这个问题。

我在NSTable列中有两个按钮,包含在NSTableCellView中。

我试图在代码中隐藏按钮,具体取决于行中对象的值。

获取值很好,但我无法弄清楚如何定位特定按钮,我无法将其绑定到插座,因为它在一个表中。我已经尝试了下面的代码,但是只是隐藏了整个NSTableCellView而不是特定的按钮,我也尝试将标识符更改为按钮,但这似乎也是这样。

   if(selectedTweet.imageURL){

        NSButton *imageButton = [tableView makeViewWithIdentifier:@"secondButtons" owner:self];
        [imageButton setHidden:NO];
        return imageButton;

    } else {

        NSButton *imageButton = [tableView makeViewWithIdentifier:@"secondButtons" owner:self];
        [imageButton setHidden:YES];
        return imageButton;

    }

这显然比我制作它简单得多?非常感谢。

由于

加雷

1 个答案:

答案 0 :(得分:1)

如果您使用CocoaBindings填充该表,则可以将按钮的“隐藏”属性绑定到Table Cell View/objectValue.imageURL并使用NSIsNil值转换器。根本不需要代码。

如果您使用的是老式的数据源,事情会变得更复杂。在这种情况下,您可以在对象中使用imageButton属性,并在NSTableViewDelegate的- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row方法中设置它。