使用XIB的自定义NSView / UIView子类?

时间:2014-10-14 07:32:51

标签: ios objective-c macos cocoa nsview

好的,这可能听起来非常基本(特别是对于已经编写过数万个Objective-C代码的人),但我总是试图避免这一切......或者只是调整现有的解决方案。结果?我从来没有学过这样简单的事情。

所以,这是我的超简单场景:

  • 我想创建一个自定义NSView(让我们说一个带有图像和文本的简单视图),我将能够在Interface Builder中分配一个NSView 1}}元素并将其类设置为MYCustomView - 这就是全部 - 没有更复杂的事情了)

  • 我知道我可以编写一个NSView子类,让它以编程方式在drawRect:和所有这些中绘制所有元素 - 但我绝对没有找到任何意义。< / p>

  • 我想要的只是简单地在Interface Builder中绘制视图(在我们的示例中,使用“占位符”图像和文本字段),能够将其用作我们{{1的“基础”子类,并且还维护指向视图中两个元素的指针,以便我可以以编程方式访问它们。

我知道这是可行的 - 我不是在问这个问题。我需要的是一个 ultra - 简单的演练。有什么可以指点我的吗?

在......单行中重新提出问题:

如何在NSView中替换编程方法(在99.9%的NSView子类中看到),并从XIB中取出布局?


P.S。

(A)相信我,这一定是我第100次阅读drawRect:以及所有这些,但没有使用它们,可能意味着我仍然没有找到重点使用它们......

(B)请不要用“你试过的”问题向我开枪。随着时间的推移,我尝试了大量的东西,有时我以某种方式制作它。然而,它总是感觉像一个蹩脚,搞砸了我刚刚设法工作的东西。没有更多,没有更少。我想要的只是知道是否有一个关于上述简单场景的简单教程。

(C)如果我得到一个实际的解释性答案,我保证我会自己重新发布。你简直无法相信有多少经验丰富的Cocoa开发人员在处理这个问题时遇到了严重的麻烦......

1 个答案:

答案 0 :(得分:2)

我一直想要&#34;定制&#34;故事板课程也是如此!

这个可能不会完全回答你的问题,但这就是我们现在在iOS中的做法,

只使用容器视图,

完整极长的教程:https://stackoverflow.com/a/23403979/294884

一切都是iOS中的容器视图

我们所做的只是拥有一个场景,然后复制它:然后改变颜色或你描述的任何颜色。

这里是在这个浏览器窗口后面打开的故事板的文字示例!

enter image description here

注意小类/场景,我们只是复制它。请注意,在示例中,它略微定制,就像您说的那样。他们都是同一个班级(碰巧被篡改了#34; BookBist&#34;){&#34; bist&#34; ==&#34; bouncy list&#34;顺便说一句}

然后正如我所说容器视图是秘密,因为,正是出于这个目的,这就是苹果最终引入&#34;容器视图&#34的原因;

(BTW在那个长容器视图教程中。向下搜索如果你想要(比方说)一个表控制器或一个页面视图控制器而不是UIViewController怎么办?它是一个关键的伎俩制作容器视图!当你在容器视图中拖动时,Apple会给你一个&#34;默认&#34; VC当然你永远不会想要那个;在我手边的例子中我将小的BookBist场景连接到容器视图的任何地方他们是必需的。)例子......

enter image description here

现在,我10000%了解您的要求并且一直想知道自己的答案!

对于使用HALF答案,就像我说的那样,&#34;复制场景&#34;这样在现代故事板中完美运行。我很欣赏,因为你想要的东西是一个预制件,就像任何游戏引擎一样,比如Unity3D ,对吗?我也是!

但请注意,你的答案的其他半部分当然是&#34;容器视图魔法&#34; - &#34;一切&#34;&#34;现在在iOS中的容器视图,确实苹果最终将它们放入其中以合理的方式完成您所描述的那种事情。

我希望它在某种程度上有所帮助!