objective-c - 在 NSTable 中获取 NSButton 的行

标签 objective-c macos cocoa interface-builder

我正在努力解决这个问题,忍不住觉得我错过了一些明显的东西!

我有一个 NSTable,其中包含一个 Table Cell View,后者又包含一个 NSButton。

按钮定义了一个 socket ,表格 View 定义了一个 socket 。

我使用以下代码获取用户单击该按钮时按钮所在行的索引:

- (IBAction)approveButtonInTable:(id)sender {

    NSInteger selected = [self.tweetTableView clickedRow];
    NSLog(@"sender sends :%ld", selected);
}

然而,这总是以 -1 回复,这并不是很有帮助。

我是否遗漏了一些非常明显的东西?

谢谢

加雷思

编辑 1

我发现如果我在 tableview 的导出使用它,这确实有效,使用这个:

- (IBAction)tweetTableAction:(id)sender {
    NSInteger selected = [_tweetTableView clickedRow];
    NSLog(@"sender sends :%ld", selected);
}

但是这并没有真正帮助我,因为当我点击按钮时我仍然无法让它工作,doh!

最佳答案

因为您说您正在使用 NSTableCellView,这告诉我您正在使用基于 View 的表。在这种情况下,您需要调用 rowForView:,传入按钮。我相信这种方法只适用于这种情况(从未在基于单元格的表上尝试过)。

- (IBAction)approveButtonInTable:(id)sender {
    NSInteger selected = [self.tweetTableView rowForView:sender];
    NSLog(@"sender sends :%ld", selected);
}

关于objective-c - 在 NSTable 中获取 NSButton 的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17791750/

相关文章:

cocoa - 请帮忙使用 CGBitmapContext 和 16 位图像

objective-c - 获取并突出显示 NSTextView 中的当前单词

ios - 使用 AFNetworking 将文本和多张图片发布到 Google Blobstore

objective-c - 将 Swift 对象传递给 JavaScript 时崩溃

mysql - MariaDB 10.4.10 错误 1146 (42S02) : Table 'mysql.user' doesn't exist

Azure VPN 客户端 (MacOS) 由于错误 : getKeyChainSecret 而无法连接

objective-c - 如何使用amber框架(objective-c框架)来执行SelectorOnMainThread?

objective-c - 如何用一个顶点数组绘制不连续的线

ios - UITableViewCell 不显示文字

java - 数字签名不受信任。 Java 将不允许对此应用程序进行任何访问