我是一名学习Swift和xcode的新手,通过重写最初在Javascript/PHP/MySql中开发的代码。我在macOS工作,使用xcode中的故事板作为我的开发基础。目前我正在开发SplitView。在主方我有一个OutlineView。它有三个层次,外层是可扩展的,直到今天,它工作得很好。适当时,所有级别都已填充,可见并可扩展。就我所知,我有Swift(4.0)和xcode(9.1)。所以,今天我决定是时候从塞拉利昂更新到高山。我的主视图现在已完全空白。纳达。我试图跟踪问题并发现,使用xcode中的调试器,显然,我的MasterViewController的NSOutlineViewDelegate扩展中的outlineView函数显然根本没有被调用!我检查了Connections Inspector,并且与DataSource和Delegate的连接仍然完好无损。我在网上搜索,发现几个人似乎与Cocoa绑定相关的近期问题隐约相关,但是我无法将他们的问题解决方案连接到我的,因为我没有使用Cocoa绑定...它在我的列表中,但是我还没有。我所知道的唯一变化就是从Sierra到High Sierra。有什么建议么?谢谢!高Sierra内的NSOutlineViewDelegate无法正常工作
增加:我现在知道更多关于这个问题。
下面是前高塞拉利昂工作代码:
类的ViewController:NSViewController {
@IBOutlet弱VAR web视图:WebView中!
@IBOutlet weak var outlineView:NSOutlineView!
变种馈送=订阅
让dateFormatter = DateFormatter()
倍率FUNC viewDidLoad中(){
super.viewDidLoad()
dateFormatter.dateStyle = .short
if let filePath = Bundle.main.path(forResource: "Feeds", ofType: "plist") {
feeds = Feed.feedList(filePath)
print(feeds)
}
}
该代码是从一个教程采取的OutlineView在Ray_Wenderlich.com网站上。在此之后,我对代码进行了图案化,并且教程和代码都工作了......直到高Sierra。显然,在高Sierra之后,系统会自动解析“feeds”并生成outlineView显示。随着高山脉的行为改变,它不再自发地产生outlineView,无论是在教程还是我的项目。结果是一个空白的outLineView。
在加入教程评论,我现在发现别人也遇到了同样的行为,并建议代码现在需要:
outlineView.reloadData(),
但我天真的实施该建议只是产生一个运行时错误,
“[一个NSView reloadData]:无法识别的选择发送到实例”
请格式化您的问题,看起来很难看 –
显示您的工作。除非你需要英语作文课的帮助,否则“不工作”不适用于除你之外的任何人。 –
同意@ElTomato –