gpt4 book ai didi

.net - XCode/MonoMac 中的自定义控件等效项

转载 作者:行者123 更新时间:2023-12-04 18:23:13 25 4
gpt4 key购买 nike

我是一名 .NET 开发人员,正在尝试使用 Windows 应用程序的 OSX 端口。我正在使用 MonoDevelop 和 MonoMac(带有 XCode Interface Builder)来创建我的 UI。

来自 Windows,我试图理解“UserControl”的 Cocoa 等价物,因为我在我的 WinForm 版本中广泛使用了这些。我有一组控件(比如说标签、文本框和按钮),我想打包并在整个 Cocoa UI 的各个地方重用它们。

据我了解,我需要通过继承 NSView 来创建一个“自定义 View ”(我们称之为“MyView”)。我可以在 Interface Builder 中创建“MyView”,但是当我在主窗口上使用它时,它总是显示为空/空白。

以下是我在 IB 中将控件放置在我的主窗体上的方法:我从对象库中添加了一个自定义 View (NSView),然后将“自定义类”下的“类”属性更改为“MyView”。如果控件在设计时不呈现,这不是问题,但它在运行时也是完全空的。

我怀疑我错过了一些非常简单/明显的东西。应该以这种方式使用自定义 View 吗?我在网上找到的所有示例似乎都在讨论自定义绘图,这是我不想要的(我只想一起使用一堆控件,以便我可以重用它们)。那里的任何人都可以为我解释一下吗?

提前致谢。

最佳答案

如果您只需要一组标准控件,那么您可能需要一个独立 View NIB/XIB。然后,您每次要实例化该组时都加载该 NIB,从中获取顶级 View ,并将该 View 插入到其他 View 层次结构中。你会使用 NSViewController (或自定义子类)拥有并加载该 NIB。

您还可以将独立 View 添加到已包含窗口的 NIB。 NIB 的所有者(通常是 NSWindowController 或子类的实例)将有一个引用该独立 View 层次结构的导出。然后,您的代码可以随意使用该 View 层次结构,将其插入到窗口的 View 层次结构中的适当位置。

您通常不会使用自定义 View 类来对标准控件进行分组。您只需创建一个 View 子类来创建一个非标准 View ,即以自定义方式绘制或提供不同操作技术的 View 。

关于.net - XCode/MonoMac 中的自定义控件等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10236340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com