arrays - nstableview 添加行作为标题并设置连续编号

标签 arrays macos cocoa swift3 nstableview

我有一个包含两列的表格 View (名字,名字) 我用数组中的数据填充表格 View 。 现在我想意识到,我可以添加一个“正常”行(人)和一个像图 block 一样的行。

例如:

第 1 行:男性 第 2 行:最大 |穆斯特曼 第 3 行:彼得 |杜伦

为此,我尝试像这样填充我的数组:

Data(firstName: "male persons", secondName: "", typ: "titel")
Data(firstname: "Max", secondName: "Mustermann", typ: "person")
Data(firstname: "Peter", secondName: "Düllen", typ: "person")

它可以工作,但是这是设置标题等行的正确方法吗?

第二个问题: 每行应该在另一列中得到一个连续的数字。 此刻我意识到了行号。但现在的问题是,标题行不应该获得连续的数字。

小例子(行尾是我想实现的数字):

Data(firstName: "male persons", secondName: "", typ: "titel") []
Data(firstname: "Max", secondName: "Mustermann", typ: "person") [1]
Data(firstname: "Peter", secondName: "Düllen", typ: "person") [2]

Data(firstName: "male persons", secondName: "", typ: "titel") []
Data(firstname: "Max", secondName: "Mustermann", typ: "person") [3]
Data(firstname: "Peter", secondName: "Düllen", typ: "person")[4]

我该如何解决这种情况? 我希望你能理解我的问题。

最佳答案

您可以根据需要填充表格 View 。您的解决方案会正常工作。只需确保Data 不是应用程序“模型”层的一部分。 (“模型”层不应该知道数据如何向用户显示,因此它不应该知道那些标题行。)

还有其他方法可以做到这一点。例如,您可以有一系列部分:

struct Person {
    let firstName: String
    let lastName: String
}

struct Section {
    let title: String
    let people: [Person]
}

let person1 = Person(firstName: "Max", lastName: "Mustermann")
let person2 = Person(firstName: "Peter", lastName: "Düllen")
let section1 = Section(title: "male persons", people: [person1, person2])

let person3 = Person(firstName: "Max", lastName: "Mustermann")
let person4 = Person(firstName: "Peter", lastName: "Düllen")
let section2 = Section(title: "male persons", people: [person3, person4])

var sections = [section1, section2]

// Now implement the table view data source and
// delegate methods to display the sections array.

在此解决方案中,Person 可以成为应用“模型”层的一部分。

关于arrays - nstableview 添加行作为标题并设置连续编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44540661/

相关文章:

java - 从 CSV 文件自动创建数组时,索引 1 超出长度 1 的范围错误

macos - 在流 #0 编解码器中找不到编解码器 h264 的标签(ffmpeg flac 到 alac 转换)

macos - mac 上的 python 3 的 openCV 3 有问题吗

cocoa - 包含 NSPoint 的 NSValue 的绑定(bind)问题

iphone - NSTimer - if 语句在计时器内不起作用 - 倒计时器

java - HackerRank 上的一维数组游戏

javascript - 如何检查字符串是否包含重复字符?

javascript - 如何循环遍历对象数组并根据 JavaScript 中的条件添加新的对象键?

macos - 使用原生 Mac OS X 对话框为 pcap 请求权限

macos - 为什么我的 CALayer 被我的 NSView 剪掉了?