私はIOS開発をしましたが、OSXは初めてです。テーブルの行のボタンをクリックして NStableView の行を正常に削除するという問題に直面していますが、追加ボタンをクリックすると、削除された行が再び表示され、削除されません。ここに私の削除機能があります
func delIssue(_ sender:NSButton)
{
let btn = sender
if btn.tag >= 0
{
let issueValue = issueKeys[btn.tag]
for index in 0..<issueName.count
{
if issueValue == issueName[index]
{
issueName.remove(at: index)
rowCount = rowCount - 1
self.tableView.removeRows(at: NSIndexSet.init(index: index) as IndexSet , withAnimation: .effectFade)
self.tableView.reloadData()
break
}
}
}
}
rowCount は基本的に変数であり、行が追加されるとインクリメントされ、行が削除されるとそれぞれデクリメントされます。私の追加行関数は
@IBAction func addRow(_ sender: Any)
{
rowCount += 1
DispatchQueue.main.async
{
self.tableView.reloadData()
}
}
そしてデータソースは
func numberOfRows(in tableView: NSTableView) -> Int
{
return rowCount
}