好的,这听起来可能很基本(尤其是对于编写了数万个 Objective-C 代码的人来说),但我一直试图避免这一切......或者只是调整现有的解决方案。结果?我从来没有学会如何做这样简单的事情。
所以,这是我的超简单方案:
我想创建一个自定义 NSView (假设是一个包含图像和文本的简单 View ),我可以在 Interface Builder 中分配它(采取一个 NSView 元素并将其类设置为 MYCustomView - 仅此而已 - 没有更复杂的)
我知道我可以编写一个 NSView 子类并让它以编程方式在 drawRect: 中绘制我的所有元素以及所有这些 - 但我绝对不会找出其中的任何一点。
我想要的是在 Interface Builder 中简单地绘制 View (在我们的示例中,使用“占位符”图像和文本字段),能够将其用作我们 的“基础” NSView 子类,并且还维护指向 View 中两个元素的指针,以便我可以通过编程方式访问它们。
我知道这是可行的——我不是在问这个。我需要的是一个超-简单的演练。有什么可以指点我的吗?
用...单行改写问题:
如何将 drawRect: 中的编程方法(在 99.9% 的 NSView 子类中看到)替换为取自 XIB 的布局?
附言
(A) 相信我,这一定是我第 100 次阅读 NSViewController 和所有这些,但没有使用它们,可能意味着我还没有找到使用它们的意义...
(B) 请不要用“你试过什么”的问题向我开枪。随着时间的推移,我尝试了很多东西,有时我以某种方式做到了。然而,我总是觉得我刚刚设法开始工作,这是一件糟糕的、一团糟的事情。不多也不少。我只想知道是否有关于上述简单场景的简单教程。
(C) 如果我得到一个实际的解释性答案,我保证我会自己重新发布。您简直无法相信有多少经验丰富的 Cocoa 开发人员在处理这个问题时遇到了严重的问题……
Best Answer-推荐答案 strong>
我也一直想要“自定义” Storyboard类!
这可能不完全回答你的问题,但这正是我们现在在 iOS 中的做法:只使用容器 View 。
完整的超长教程:https://stackoverflow.com/a/23403979/294884
现在 iOS 中的一切都是容器 View 。
我们所做的只是有一个场景,然后复制它:然后改变颜色或你描述的任何东西。
这是在此浏览器窗口后面打开的 Storyboard中的文字示例!
注意小类/场景的东西,我们只是复制它。请注意,正如您所说,在示例中它是略微定制的。它们都是同一个类(它恰好被称为“BookBist”){“bist”==“bouncy list”btw}
那么正如我所说的容器 View 是 secret ,因为,正是出于这个目的,这就是为什么苹果最终引入了“容器 View ”。
(顺便说一句,关于那个长容器 View 教程。向下搜索如果你想要(比如)一个表格 Controller 或页面 View Controller 而不是 UIViewController 怎么办?这是制作容器 View 时的关键技巧! 可笑的是,当您在容器 View 中拖动时,Apple 会为您提供“默认”VC;当然,您永远不会想要这样;在手头的示例中,我将连接到容器 View 的小型 BookBist 场景放在需要它们的任何地方。)示例.. .
现在,我 10000% 明白你在问什么,并且一直想自己知道答案!
对于使用 HALF 的答案,正如我所说,“复制场景”以便在现代 Storyboard中完美运行。我很欣赏这很糟糕,因为你想要的是一个预制件,就像在任何游戏引擎中一样,例如 Unity3D,对吧?我也是!
但请注意,您的答案的另一半肯定是“容器 View 魔术”——“一切都是”现在 iOS 中的容器 View ,事实上,Apple 终于将它们放入其中,以合理的方式完成您所做的事情描述。
关于ios - 使用来自 XIB 的自定义 NSView/UIView 子类?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/26355112/
|