gpt4 book ai didi

swift - 编辑后按下返回键时移动到下一个 NSTableview 行

转载 作者:行者123 更新时间:2023-11-30 11:04:31 27 4
gpt4 key购买 nike

我的代码陷入了死胡同。我有一个单元格 View NSTableView,我在其中导入 csv 文件。我想使用表格 View 作为电子表格。如果我在编辑特定单元格后按回车键,它应该移动到下一行,突出显示它并使其可编辑。

我发现了用 Objective C 编写的代码,但没有一个适合我。

我该怎么做?希望有人能够提供帮助。

提前致谢。

我有代码:

func controlTextDidEndEditing(_ notification: Notification) {
let editedColumn: Int = tableMain.editedColumn
let editedRow: Int = tableMain.editedRow
let lastRow: Int = tableMain.numberOfRows
let lastCol: Int = tableMain.numberOfColumns
var userInfo = notification.userInfo
let textMovement = Int(truncating: userInfo?["NSTextMovement"] as? NSNumber ?? 0)

//super.textDidEndEditing(notification)

if textMovement == NSTabTextMovement {
if editedColumn != lastCol - 1 {
tableMain.selectRowIndexes(NSIndexSet(index: editedRow) as IndexSet, byExtendingSelection: false)
tableMain.editColumn(editedColumn + 1, row: editedRow, with: nil, select: true)
} else {
if editedRow != lastRow - 1 {
tableMain.editColumn(0, row: editedRow + 1, with: nil, select: true)
} else {
tableMain.editColumn(0, row: 0, with: nil, select: true) // Go to the first cell
}
}
} else if textMovement == NSReturnTextMovement {
if editedRow != lastRow - 1 {
tableMain.selectRowIndexes(NSIndexSet(index: editedRow + 1) as IndexSet, byExtendingSelection: false)
tableMain.editColumn(editedColumn, row: editedRow + 1, with: nil, select: true)
} else {
if editedColumn != lastCol - 1 {
tableMain.editColumn(editedColumn + 1, row: 0, with: nil, select: true)
} else {
tableMain.editColumn(0, row: 0, with: nil, select: true) //Go to the first cell
}
}
}
}

最佳答案

我设法解决了我的问题,可能不是最好的方法,但对我来说 100% 有效。

我将 tableView 更改为基于 View 。然后我为文本字段添加了一个操作。执行操作后,我输入了以下代码:

 tableWages.selectRowIndexes(NSIndexSet(index: tableWages.selectedRow + 1) as IndexSet, byExtendingSelection: false)
tableWages.editColumn(colNr, row: tableWages.selectedRow, with: nil, select: true)

因此,在编辑值并按下 Return 键后,它会移动到下一行并保持在同一列中,从而使下一个值可编辑。

关于swift - 编辑后按下返回键时移动到下一个 NSTableview 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52876470/

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