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

2024-01-29

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

来自 Windows,我试图理解 Cocoa 中相当于“UserControl”的内容,因为我在 WinForm 版本中广泛使用了它们。我有一组控件(比如说标签、文本框和按钮),我想将它们打包并在整个 Cocoa UI 的各个位置重用。

据我了解,我需要通过子类化 NSView (我们称之为“MyView”)来创建一个“自定义视图”。我可以在界面生成器中创建“MyView”,但是当我在主窗口上使用它时,它总是显示为空/空白。

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

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

提前致谢。


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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XCode/MonoMac 中的自定义控件等效项 的相关文章

  • CompileAssemblyFromDom 抛出访问被拒绝异常

    代码 using var codeProvider new CSharpCodeProvider var compilerParameter new CompilerParameters assemblies assemblyName fa
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • VB.NET 中的静态方法实现

    我很困惑Static在 VB NET 中的实现 在 C 中 我们可以创建静态类和静态方法来为我们的应用程序编写实用方法 现在 VB NET 让我们创建Module代替静态类 如果我们在模块中创建一个方法 默认情况下它会变成静态的 但在我的应
  • SQLite .NET 性能,如何加快速度?

    在我的系统上 约 86000 个 SQLite 插入需要长达 20 分钟 意味着每秒约 70 个插入 我要做数百万 我怎样才能加快速度 对每一行的 SQLiteConnection 对象调用 Open 和 Close 会降低性能吗 交易有帮
  • 如何在完成之前从 ReplaySubject 获取最新值

    我需要一种方法来获取添加到 ReplaySubject 中符合特定条件的最新项目 下面的示例代码完成了我需要它做的事情 但感觉不是正确的方法 static void Main string args var o new ReplaySubj
  • NuGet:包含 .pdb 文件并排除“Content”文件夹

    我已将以下行合并到 CI 构建中在每个构建上创建一个私有 NuGet 包 nuget pack C Projects Test Test vbproj OutputDirectory nas1 NuGet The 读取AssemblyInf
  • 防止重入并确保某些操作获取锁的正确方法是什么?

    我正在设计一个基类 当继承该基类时 它将针对多线程环境中的上下文提供业务功能 每个实例可能都有长时间运行的初始化操作 所以我想让这些对象可重用 为此 我需要能够 为这些对象之一分配上下文以允许其完成工作 防止对象在已有上下文的情况下被分配新
  • 如何消除字符串中的所有换行符?

    我需要删除字符串中出现的所有换行符 来自数据库 我使用下面的代码来做到这一点 value Replace r n Replace n Replace r 我可以看到至少有一个角色的行为就像行尾一样幸存了下来 字符代码是8232 http w
  • 在 iOS 7 中 viewForHeaderInSection 部分是从 1 开始而不是从 0 开始

    我正在处理UITableView在我的项目中 这个项目是在 Xcode 4 5 中创建的 现在我正在使用 Xcode 5 所以我的问题是何时在 iOS 6 中运行我的项目 viewForHeaderInSection方法部分从 0 开始没问
  • 使一个对象只能被同一程序集中的另一个对象访问?

    每个业务对象都有一个包含 sql 调用的匹配对象 我想限制这些 sql 对象 使其只能由匹配的业务对象使用 如何才能实现这一目标 Update 格雷格提出了关于可测试性的观点 由于 SqlObjects 将包含非常特定于业务流程的 sql
  • 由于索引无效,无法加载计数器名称数据 -Exception

    我使用 C 和 WPF 操作系统是 windows 7 Professional 和 Visual Studio 2012 SQL Server 2012 我在wpf中使用了Devexpress Grid 我想使用 ADO Net 服务器模
  • 在 WKWebView 中禁用缩放?

    有谁知道在 WKWebView 中禁用双击和捏缩放的简单方法 我尝试过的任何方法都不起作用 Webview scrollView allowsMagnification false Error value of type WKWebView
  • 如何计算最低系统要求?

    对于我用 Visual C 编写的应用程序 Testing 不 真的 这就是全部
  • 尝试对无法访问的主机进行套接字操作

    一位客户在连接到我们的服务器服务的 WCF 客户端上报告了此错误 消息 尝试对无法访问的主机进行套接字操作 类型 System Net Sockets SocketException 从这个链接http msdn microsoft com
  • .NET 中是否有内置函数可以对密码进行哈希处理?

    我看到这个问题加密 散列数据库中的纯文本密码 https stackoverflow com questions 287517 encrypting hashing plain text passwords in database 我知道我
  • IEnumerable 与 IReadOnlyList

    选择有什么区别IEnumerable
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 如何使用 C# / .Net 将文件列表从 AWS S3 下载到我的设备?

    我希望下载存储在 S3 中的多个图像 但目前如果我只能下载一个就足够了 我有对象路径的信息 当我运行以下代码时 出现此错误 遇到错误 消息 读取对象时 访问被拒绝 我首先做一个亚马逊S3客户端基于我的密钥和访问配置的对象连接到服务器 然后创

随机推荐

  • 在 Eclipse 插件中使用 JavaScript

    可以使用JavaScript在 Eclipse 插件的视图中 默认情况下 eclipse 在 JVM 中的 java 上运行 但 JVM 对动态脚本语言的支持越来越多 您可以随时使用org mozilla javascript http d
  • 如何将文本的背景图片设置到UIlabel中?

    我们可以在 UILabel 中为文本设置颜色 但是我们可以在 UILabel 中将图像设置为文本吗 你能帮助我吗 谢谢大家 UILabel lbl UILabel alloc initWithFrame CGRectMake 20 220
  • gradle 2.0.0 和 DataBinding 的问题

    最近我将Android studio从1 5 1更新到2 0 更新后它要求我使用最新的gradle 即com android tools build gradle 2 0 0 dependencies classpath com andro
  • Google 地图 MarkerClusterer 不起作用或隐藏所有标记

    取决于我把线放在哪里 var mc new markerclusterer map 如果它去到示例似乎暗示的地方 在引入 var map 之后 所有标记都会消失 示例运行here https c9 io lmmx molmachmap wo
  • 我们如何知道调用者函数的名称?

    在C语言中 FUNCTION 可以用来得到current函数的名称 但是如果我定义一个名为 a 的函数 并在 b 中调用它 如下所示 b a 现在 在源代码中 有很多像 b 这样的函数调用 a 例如c d e 是否可以在 a 中添加一些代码
  • 使用列名从 ResultSet 获取小写列

    我使用的是 Oracle 12cr1 数据库 看来我无法从中获得价值ResultSet如果列名是小写 则使用列名 创建表create table Tab col number col varchar2 10 所以第二列是小写的 如果我打电话
  • FILE_FLAG_DELETE_ON_CLOSE 和内存映射文件

    并不是说它特别有用 但我很好奇为什么下面的方法有效 仅仅是因为即使文件被删除后该页面仍然在内存中吗 在什么情况下 如果页面被换出 数据会丢失 include
  • 链接 gcc 6、gcc 7 和 gcc 8 对象安全吗?

    链接 C 17 C 14 和 C 11 对象是否安全 https stackoverflow com q 46746878 2069064询问有关链接使用不同语言标准编译的对象的问题 Jonathan Wakely 对这个问题的出色回答解释
  • 从批处理文件中发现Java安装在哪里?

    我想从批处理脚本设置 JAVA HOME 变量 此代码片段将在当前路径中搜索 java exe 并打印出找到它的位置 for f j in java exe do echo dp PATH j 在我的系统上这给了我 C WINDOWS sy
  • 错误 ASP 0177:8007007e COM DLL CreateObject 失败

    我们一直在尝试在新服务器上安装 COM DLL 界面是经典的 ASP 地图连接器 DLL 似乎是问题所在 但据我所知 这是问题所在 我们无法获取 IIS 提供的页面 只给出 500 错误 跟踪 ASP 时 127 ASP SCRIPT TR
  • 给 Jekyll 类别添加标题

    我想将我的帖子的打印类别名称转换为标题大小写 我找不到合适的液体过滤器 我尝试使用破折号和驼峰过滤器 但没有骰子 或者 我想打印 YAML frontmatter 中写入的类别名称 例如 对于包含以下内容的帖子 category Here
  • Android 中的计时器不会停止

    我在android中做了一个应用程序并使用了这样的计时器 try CountDownTimer start1 new CountDownTimer 20000 1000 public void onTick long millisUntil
  • CAGradientLayer 不起作用[重复]

    这个问题在这里已经有答案了 我创建了一个新项目 在LinkedIn中QuartzCore framework并进口
  • 如何阻止浏览器对 GET 上的表单值进行 url 编码

    我有一个表格method get 在表单中 我需要传递 CSS 文件的 URL 但它正在将其编码为http 3A 2F 2Fwww etc 有没有办法停止 URL 编码 因为它会破坏文件 Thanks 背景 It s a bit more
  • 为什么背景颜色需要 1px 粗体? [复制]

    这个问题在这里已经有答案了 这是我的粗话 table orders background color ff0000 然而 当我实际运行这个时 我收到一条错误消息Invalid CSS after ff0000 expected expres
  • OpenCV - 找不到指定扩展名的编码器

    这是我用来将 IplImage 转换为 jpg 的代码 IplImage fIplImageHeader fIplImageHeader cvCreateImageHeader cvSize 160 120 8 3 fIplImageHea
  • ios - 应用程序关闭时本地通知不更新徽章号码

    我注意到 当 iOS 设备中收到本地通知时 通知会显示在通知中心 但应用程序关闭时应用程序徽章编号不会更新 我需要点击通知中心的通知才能将本地推送消息传输到应用程序 这是正常行为吗 可以通过远程推送通知来解决这个问题吗 您可以利用appli
  • Iframe.readyState 在 Chrome 中不起作用

    我动态创建一个 Iframe 并将下载页面设置为 url二进制文件 xls doc 下载文件时我会显示动画 当没有的时候 我就把它隐藏起来 问题是 Chrome 不知道文件何时完全下载 即 iframe 何时完全加载 我使用 iframe
  • 处理 JavaScript 中的特定错误(考虑异常)

    您将如何实现不同类型的错误 以便能够捕获特定的错误并让其他错误出现 实现此目的的一种方法是修改Error object Error prototype sender function throwSpecificError var e new
  • XCode/MonoMac 中的自定义控件等效项

    我是一名 NET 开发人员 正在尝试 Windows 应用程序的 OSX 端口 我正在使用 MonoDevelop 和 MonoMac 带有 XCode Interface Builder 来创建我的 UI 来自 Windows 我试图理解