Macos NSOutlineView上的编译错误:语义问题';MoveRowatinex:toIndex:&x27;不可用
当我试图编译以下代码时Macos NSOutlineView上的编译错误:语义问题';MoveRowatinex:toIndex:&x27;不可用,macos,cocoa,nstableview,nsoutlineview,Macos,Cocoa,Nstableview,Nsoutlineview,当我试图编译以下代码时 [self.outlineView beginUpdates]; [self.outlineView moveRowAtIndex:row toIndex:targetRow]; [self.outlineView endUpdates]; 我发现以下编译器错误: 语义问题“MoveRowatinex:toIndex:”不可用 除此之外,NSOutlineView上的所有其他操作都有效 值得注意的一点是,当XCode自动完成时,它会在上面显示一条红线,好像它被弃用了,但
[self.outlineView beginUpdates];
[self.outlineView moveRowAtIndex:row toIndex:targetRow];
[self.outlineView endUpdates];
我发现以下编译器错误:
语义问题“MoveRowatinex:toIndex:”不可用
除此之外,NSOutlineView上的所有其他操作都有效
值得注意的一点是,当XCode自动完成时,它会在上面显示一条红线,好像它被弃用了,但文档中说它是有效的
我的项目是为OSX 10.8构建的,文档中说这适用于OSX 10.7和更高版本
我在网上没有找到任何解决方案,我想知道是否有人对如何使其工作有任何想法。
-moveRowatinex:toIndex:
在NSTableView
中声明和定义。请注意,NSOutlineView
继承自NSTableView
,但由于其层次结构,某些NSTableView
方法不可用,这就是为什么会出现编译器错误
您应该使用-moveItemAtIndex:inParent:toIndex:inParent:
不幸的是,文档还没有反映这一点。浏览头文件通常很有用,因为它们在声明方面更准确,并且往往是最新的文档。如果打开NSOutlineView.h,您会注意到-moveItemAtIndex:toIndex:
是用不可用属性
声明的,该属性对应于\uu属性((不可用))