我目前正致力于为int List::RemoveAll(int v) {
if (IsEmpty())
return 0;
else if (HasOnlyOne()) {
if (h->data == v) {
delete h;
h = t = NULL;
return 1;
}
}
int numRemoved = 0;
Node *curNode = h->next, *prevNode = h;
while (curNode != NULL) {
if (prevNode->data == v) {
delete prevNode;
numRemoved++;
}
prevNode = curNode;
curNode = curNode->next; // EXC_BAD_ACCESS error here.
}
return numRemoved;
}
开发桌面应用程序,以便同时从URL下载批量音频文件我遇到了一个关于UI设计的问题,我可以“弄清楚。
我有一个名为MacOS
的类,其中包含有关输入的URL的信息(例如网址,标题,长度,作者等),我想创建一个垂直增长的自定义视图列表,添加了一个新的。
基本视图的位置如下:
大白区内部是我希望列表的位置。
我试图创建一个单独的视图控制器来处理每个条目,但是没有用。我知道SongEntry.swift
的UI设计与MacOS
有很大的不同,但我认为我正在寻找的是一种模拟来自iOS
的表格视图和单元格原型的方法,但可以&找不到合适的选择。
如果有人知道可能的解决方案或能指出我正确的方向,我会非常感激!
答案 0 :(得分:3)
你想要的是一个集合视图。对于垂直列表,您可能只使用NSTableView
只有一列,并隐藏其他所有内容,例如标题。
以下是您需要的大致步骤:
NSTableViewDataSource
和NSTableViewDelegate
协议来提供数据(您的SongEntry对象)和每行的视图。Table View Programming Guide for Mac。
详细介绍了整个过程这个话题可能有点令人困惑。请注意,有两种主要方法:基于视图和基于NSCell的表。不要为NSCell方式烦恼,它更像是遗留下来的剩菜。
另请注意,NSTableViewDataSource
和NSTableViewDelegate
中的方法存在一些重叠,以提供最初可能有点混乱的数据和视图。只需使用代码和示例,就可以更清楚地使用哪种委托方法。
Apple的开发者网站和github上都有很多例子。也是关于raywenderlich.com的好教程。