自定义控制等效XCode中/的MonoMac(Custom Control equivalent i

2019-09-16 15:30发布

我是一个.NET开发者,希望他的手在一个Windows应用程序的OSX端口。 我使用MonoDevelop的和的MonoMac(与XCode的界面生成器)创建我的UI。

从Windows来了,我想了解可可相当于一个“用户控件”的,因为我在WinForm的版本中使用这些广泛。 我有一组控件(比方说,一个标签,文本框和按钮),我想打包并在我的整个UI可可各个地方重用。

据我了解,我需要创建一个“自定义视图”通过继承的NSView(姑且称之为“MyView的”)。 我可以在Interface Builder中创建“MyView的”好了,但是当我使用它在我的主窗口,它总是出现空/空。

下面是我如何把控制我的主要形式,在IB:我添加了一个自定义视图(一个NSView)从对象库,然后在“自定义类”中的“类”属性更改为“MyView的”。 这不是一个问题,如果控制不在设计时渲染,但它在运行时完全空了。

我怀疑我失去了一些东西很简单/显而易见的。 应该是这样使用的自定义视图? 我在网上找到了所有的例子似乎讨论自定义绘制,这是我不想(我只是想用一串控制在一起,所以可以重新使用它们)。 任何人都可以在那里提供一些线索这对我来说?

提前致谢。

Answer 1:

如果你只是想一组标准控件,那么你可能需要一个独立的视图NIB /厦门国际银行。 然后你会加载NIB每次要实例化组,从中获得顶级视图,然后插入到视图其他一些视图层次。 你会使用NSViewController (或自定义子类)拥有并加载NIB。

您还可以添加一个自由站立以笔尖已包含,比如说,一个窗口。 笔尖的所有者(通常的实例NSWindowController或子类)将有一个出口来指代自由站立视图层次。 然后,您的代码可以使用视图层次结构的意愿,将其插入到窗口的视图层次结构在一个合适的位置。

你通常不使用自定义视图类刚组标准控件。 你只能让一个视图子类进行非标准观点,一个是在自定义的方式绘制或提供不同的操作技术。



Answer 2:

这为我工作:

  1. 删除了“自定义视图”到你的窗口(不要重命名身份检查器中的类)。

  2. 使所谓的“CustomView”你的窗口的控制器自定义视图的出口。

  3. 在你的窗控制器awakeFromNib方法中添加以下代码

    this.CustomView.AddSubview(new YourCustomViewController().View);

注:其他回答这个问题假设你的观点有没有厦门国际银行,因而显示为空,因为它未正确加载。



文章来源: Custom Control equivalent in XCode/MonoMac