基于视图的NSTableView - NSButton子视图不会触发

时间:2013-07-22 16:46:30

标签: objective-c cocoa

我正在使用基于NSTableView的视图。我在我的视图中放了一个按钮并连接其动作/目标以在App委托中调用以下方法:

-(IBAction)fire:(id)sender

NSTableView中的按钮不会在应用程序委托中调用我的方法。但是,如果我在常规视图中放置NSButton并执行相同操作(将其操作/目标连接到调用fire:),那么它可以正常工作。

我创建了一个sample code来说明这个问题。

1 个答案:

答案 0 :(得分:1)

制作AppDelegate工具NSTableViewDelegate

@interface AppDelegate : NSObject <NSApplicationDelegate, NSTableViewDelegate>

然后将此方法添加到实现中:

- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
    NSView *customView = [tableView makeViewWithIdentifier:@"customview"
                                                 owner:self];
    NSTableCellView *result = [tableView makeViewWithIdentifier:tableColumn.identifier owner:self];
    return result;
}

最后,在您的MainMenu.xib中,将表视图 Delegate插座连接到 App Delegate 对象