这个例子使用View-based tableview绑定Array Controller,其中Array Controller的remove action在View-based tableview下,选中则默认删除第一行的数据,不选中则默认删除最后一行(而cell-based tableview则可以指定删除)。下一个例子,实现View-based tableview的指定删除。
现在开始写这个程序了。首先创建一个带Doc的Cocoa程序。
删除Main.storyboard、ViewController.cs和Document.cs,然后我们手动添加Menu和Document。
默认的RMDocument类下有一个报错的成员函数,原因是这个是从mono.Mac继承而来,微软还没有注意到这个问题,但是自己删除即可。
接下来,把Array Controller的数据将放在NSDocument子类中。需要注意的是,这样添加的NSDocument不会改修info.plist,所以需要手动修改info.plist让Cocoa NSDocument类指向我们自定义的doc类。
此时修改“部署信息”,让其指向“MainMenu”。右上角点“应用程式”,可进入修改。
至此,整个NSDocument类的配置完成。我还是用上一个例子的Person类,所以此时你的VS应该和我的一样。
如果你编译,是会成功的。会看到一个正常的Document默认窗口。
好了,开始xcode布局了。和上一个例子一样的部分,我不就重复贴图了(比如button的设置,和之前一样)。主要给大家看下View-based tableview的绑定。
Array Controller会有一些不同,因为是xib,所以File's Owner会自动指向RMDocument子类。如图。
第一步 - 绑定Table View 中Table Content 中的Content
第二步 - 绑定Table View Item。这里就展示name,另一个同理。
好了!现在看下RMDocument子类下的数据吧。此时你的类应该和我的一样。
我在这里添加一个AddPerson成员函数,为了测试下数据哈。现在看看效果图吧!!