Bjo*_*orn 38 cocoa objective-c
我更喜欢以编程方式创建我的接口.似乎Apple Developer上的所有文档都假设您正在使用Interface Builder.是否可以以编程方式创建这些接口,如果是这样,我从哪里开始学习如何执行此操作
我认为相关文档如果可能的话将在本节中:http://developer.apple.com/referencelibrary/Cocoa/idxUserExperience-date.html
Con*_*nal 36
我喜欢这个问题,而且我也想知道减少IB的资源.实用性("为什么")仅受想象力的限制.在我的脑海中,以下是明确编程UI的一些可能原因:
有一系列关于没有笔尖工作的博客文章以及Michael Mucha最近在cocoa-dev上的描述.
Pet*_*sey 22
我更喜欢以编程方式创建我的接口.
为什么?Interface Builder更容易,更快捷.你不能通过拖放写一个拼写错误,当你手工输入矩形时,你不会得到那些非常方便的Aqua指南.
不要打它.Interface Builder是您的朋友.让它来帮助你.
如果您坚持通过在代码中编写UI来浪费自己的时间和精力:
不是基于文档的(通常是基于库的,如Mail,iTunes,iPhoto):创建NSObject的子类,实例化它,并使其成为应用程序的委托,并在委托的applicationDidFinishLaunching:方法中,创建一个窗口,用视图填充它,以及订购它.
基于文档(如TextEdit,Preview,QuickTime Player):在makeWindowControllersNSDocument子类的方法中,创建窗口(并用视图填充它们)并为它们创建窗口控制器,确保addWindowController:为每个窗口控制器发送自己的窗口.
小智 19
作为一个完全盲目的开发人员,我可以说IB与VoiceOver(OS X上的内置屏幕阅读器)不兼容.
这意味着如果无法访问使用Cocoa而不使用IB的强大文档,我无法在Cocoa中为OS X/iPhone开发应用程序,这意味着我(具有讽刺意味)无法轻松开发OS X上的盲人(以及所有其他人)可访问的应用程序iOS版.
我目前的解决方案,我不想使用,是Java + SWT,当然这适用于OS X,而不是iOS.
小智 5
事实上,当您开始编写自己的 UI 类时,IB 就变得完全没有用了。假设您创建自己的按钮,该按钮使用基于 plist 的皮肤系统。或者您创建一个动态工具栏,根据用户选择加载和卸载项目。
IB不接受自定义UI元素,因此更复杂的UI无法使用他。是的,您会想要做 UIKit 为您提供的更复杂的事情。