gpt4 book ai didi

xcode - OS X 应用程序中的 NSTableView 选择

转载 作者:行者123 更新时间:2023-12-03 17:48:43 26 4
gpt4 key购买 nike

所以我正在尝试学习如何编写一个简单的 OS X 应用程序,但我有点困惑。

我得到了这个 TableView - 将它连接到数组 Controller 等已经很奇怪了。

目前工作正常,但我想在用户点击特定行时触发特定操作。

我在 stackoverflow 上找到了有关 shouldSelectRow 方法的信息,但它似乎无法正常工作。

func tableView(tableView: NSTableView, shouldSelectRow row: Int) -> Bool {
switch tableView.identifier! {
case "SetsTable":
print("Selected row:", row)
print("Objects after selection:", self.arrayController.selectedObjects)
self.appsTableView.reloadData()
return true
default:
return true
}
}

它在第一个打印语句中显示正确的行,但是当涉及到第二个打印语句时,它似乎从完全不同的行中选取对象(如果我只有一行包含对象,则它显示一个空数组)

有人知道这里有什么问题以及如何正确显示所选行的对象吗?

这不是shouldSelectRow的问题吗?

当我在此函数之外使用 self.arrayController.selectedObjects 时(例如,选择了该行并点击了一个调用打印 selectedObjects 的按钮),它会正确显示。

最佳答案

名称中带有“should”的方法在事件发生之前调用,带有“did”的方法在事件发生后调用。

tableView:shouldSelectRow: 在选择更改之前调用,以便委托(delegate)可以拒绝新选择。

tableViewSelectionDidChange: 在选择更改后调用。 arrayController.selectedObjects 将成为新的选择。

如果您想了解更多:Table View Programming Guide

关于xcode - OS X 应用程序中的 NSTableView 选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35531196/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com