- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建自定义 View 并将其加载到窗口中。
最后,我知道需要遵循几个步骤,反射(reflect)我所缺少的关键关系。我希望有人可以通过一系列步骤解释如何创建 View 对象、 View Controller 、关联的 .xib,然后将其加载到窗口中(清除当前 View 后)。
我的意思是真正的细节:在哪里声明和初始化,需要导入什么,一切。因为我翻阅了我拥有的每一本书,但我那小小的大脑并不清楚。
谢谢!
最佳答案
how one creates a view object, view controller, associated .xib, and then loads it into a window …
这些是几件事,其中一些是相互冲突的。
如果您在代码中创建 View ,则不需要(也不应该)也在 nib 中创建它,反之亦然。
如果您创建一个 View Controller 来加载 Nib ,您将在 Nib 中创建 View ,因此您绝对不应该在代码中创建相同的 View 。
您不需要为大多数 View 创建 View Controller 。更常见的是让每个 Controller 只拥有一个窗口的全部。唯一需要 View Controller 的时候是当您在单个窗口中管理复杂的 View 层次结构时(最有可能的是,如果您使应用程序成为单窗口)。
… (after clearing the current view).
Cocoa 中没有“当前 View ”。您可以有多个窗口,每个窗口都有一个深度 View 层次结构,您通常不会在运行时编辑该层次结构。在某种选项卡式 UI 之外将一个 View 交换为另一个 View 是非常不寻常的。
向所需的 View 类发送 alloc
消息,并向返回的 View 发送 initWithFrame:
消息(除非类的文档另有规定)。当然,您需要释放或自动释放此 View 。
在 IB(新建)或 Xcode(添加文件)中使用 view-nib 模板。如果您在 Xcode 中创建它,请不要忘记获取有关它的信息并使其可本地化。如果您在 IB 中创建它,则应将其保存到您的 .lproj 文件夹之一;那么它就已经可以本地化了。
从这些模板创建的 Nib 将包含一个空的 NSView。您可以更改其类和/或添加 subview ,如下所述。
将“自定义 View ”从库调色板拖到 Nib 窗口中,然后在 ⌘6 检查器上设置 View 的类。
您只能对 Nib 中的顶级 View 执行此操作。有关其 subview ,请参见下文。
设置窗口的内容 View 。
在 IB 中,您无法更改窗口的内容 View 。相反,您可以更改有关它的内容 - 它的类、 subview 等。没有理由尝试用 IB 中的另一个 View 替换窗口的内容 View 。
在代码中执行此操作的方法是向 super View 发送 addSubview:
消息。
如果两个 View 都在同一个 Nib 中,则创建 subview 并将其添加到同一行为的 super View 中。将“自定义 View ”从库拖到 super View 中,而不是 Nib 窗口中,然后在 ⌘6 检查器上设置 subview 的类。
(如果您要自定义标准 Apple View 之一,而不是制作完全原始的自定义 View ,请从库中拖动基于您的标准 Apple View ,然后将其类更改为您自定义的子类。)
关于cocoa - NSView 高级概述?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3947732/
**设计模式(Design pattern)**是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。项目中合理地运
系统定义 系统定位 HarmonyOS是一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能力的基础上,HarmonyOS提出了基于同一套系统
我有 dplyr::recode一些因素,我正在寻找一种干净的方法来制作 LaTeX 表,其中比较新旧类别,即级别。 这是使用 cyl 的问题的说明来自`mtcars。首先是一些包, # instal
简介 Blazor 是一种 .NET 前端 Web 框架,同时支持服务器端呈现和客户端交互性。 使用 C# 语言创建丰富的交互式 UI 共享前后端应用逻辑 可以生成
thinkPHP的F方法只能用于缓存简单数据类型,不支持有效期和缓存对象。S()缓存方法支持有效期,又称动态缓存方法,使用示例如下: 复制代码 代码如下: // 使用d
在.NET开发中,我们经常会在bin目录下面看到这些类型的文件: .pdb、.xsd、.vshost.exe、.exe、.exe.config、.vshost.exe.config 项目发布的时
VMware Cloud Foundation(简称 VCF)是 VMware 打造的一套用于 Software Defined Data Center(SDDC)软件定义数据中心的全栈云平台解决方案
HBase 概述 HBase是[Hadoop][]的生态系统,是建立在Hadoop文件系统(HDFS)之上的分布式、面向列的数据库,通过利用Hadoop的文件系统提供容错能力。如果你需要进行实时读写
JUnit – 概述 所谓单元测试是测试应用程序的功能是否能够按需要正常运行,并且确保是在开发人员的水平上,单元测试生成图片。单元测试是一个对单一实体(类或方法)的测试。单元测试是每个软件公司提高产
Maven – 概述 Maven 是什么? Maven 是一个项目管理和整合工具。Maven 为开发者提供了一套完整的构建生命周期框架。开发团队几乎不用花多少时间就能够自动完成工程的基础构建配置,
概述 特性说明 下面是一些 Gradle 特性的列表。 基于声明的构建和基于约定的构建 Gradle 的核心在于基于 Groovy 的丰富而可扩展的域描述语言(DSL)。 Groovy 通过声
我正在创建 TopDesk 的概述。我想问你们中的一些人,完成这项工作的最佳方法是什么。 最后,应用程序将设置在大屏幕上,以便每个人都可以看到我们有多少个 topdesk 调用。 我想到了以下选项:
我正在使用 SpriteKit 的 框架制作游戏。我如何使用 SKLabelNodes 制作轮廓文本?似乎没有这样做的内置功能。如果在 SpriteKit 中没有办法做到这一点,我还有什么其他方法可以
函数式编程中非常通用的函数是什么样的? 有人说“我们没有对象,但我们有高阶函数”。高阶函数会取代对象吗? 在编写面向对象的应用程序时,我多次尝试从更一般的想法转向更详细的想法。如果我尝试在函数式编程中
序言 构建这个概念是和应用程序包及资源等相关的,它的特点是使用脚本控制一系列的任务的处理,以减少人力操作带来的成本和操作失误风险。 在UE的概念里,构建往往是和打包相关的(如编译、coo
1. 概述 webpack作用:前端项目构建工具 - 打包工具 - 可解决下面的开发问题 Web开发面对的问题文件依赖关系复杂静态资源请求效率低模块化支持不好浏览器对高级JS语法兼容程度低 不用web
我刚刚收到关于 Compound Literals 错误的评论,并且在此过程中偶然发现了可变长度数组。显然我一直生活在一 block 岩石下。为了更好地理解 C99 中的主要新特性,我应该阅读哪些内容
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 8年前关闭。 Improve thi
Java UI 插件提供接口(interface) ISharedImages 访问可以在自己的插件中使用的标准图像。 例如 Image image = PlatformUI.getWorkbench
我正在尝试将其设置为角色在图 block 中的位置,当他们向上或向下移动时它会移动到下一个图 block ,但我不确定该怎么做。现在,我设置了角色移动像素的位置,但我希望它移动 1 个方格。 现在的代
我是一名优秀的程序员,十分优秀!