此处将为大家介绍关于objective-c–经验丰富的Cocoa程序员多少依赖InterfaceBuilder来连接他们的应用程序?的详细内容,此外,我们还将为您介绍关于IPHONE开发基础概念--C
此处将为大家介绍关于objective-c – 经验丰富的Cocoa程序员多少依赖Interface Builder来连接他们的应用程序?的详细内容,此外,我们还将为您介绍关于IPHONE开发基础概念--Cocoa、Foundation、UIKit、Objective-c、XCode、Interface Builder的概念、objective-c – (Cocoa)在单个窗口可可应用程序中,UIViewController子类是什么?、objective-c – .NET程序员学习Objective C和Cocoa有多难?、objective-c – Cocoa Interface Builder对象初始化的有用信息。
本文目录一览:- objective-c – 经验丰富的Cocoa程序员多少依赖Interface Builder来连接他们的应用程序?
- IPHONE开发基础概念--Cocoa、Foundation、UIKit、Objective-c、XCode、Interface Builder的概念
- objective-c – (Cocoa)在单个窗口可可应用程序中,UIViewController子类是什么?
- objective-c – .NET程序员学习Objective C和Cocoa有多难?
- objective-c – Cocoa Interface Builder对象初始化
objective-c – 经验丰富的Cocoa程序员多少依赖Interface Builder来连接他们的应用程序?
在许多其他环境中,我不会花太多时间使用界面构建器(小写),但Apple工具显然是他们自己的一类.他们还有更进一步,或者他们是初学者的工具吗?为什么?
我认为很明显,它们是组装和布局UI的正确选择.但是关联UI元素和控制器对象呢?
解决方法
认为我充满了废话?打开任何专业完成的Cocoa应用程序.说真的 – 任何Apple应用程序,任何第三方Cocoa应用程序.现在转到Resources文件夹.捅了一下,你会看到无处不在的笔尖.
至于IB有多少 – 有一点可以通过代码建立连接.一般来说,连接UI元素和控制器通常在IB中完成,甚至控制器到控制器的连接通常也是如此,尽管这种情况更为明显.它基本上归结为设置和维护的工作量较少.具有讽刺意味的是,IB的主导地位是一个很大的例外.如果您拥有仅使用过一次的自定义视图,则不值得为其创建IBPlugin.在这种情况下,通常控制器连接到IB中的视图,然后控制器将视图连接到它需要的任何其他内容.
IPHONE开发基础概念--Cocoa、Foundation、UIKit、Objective-c、XCode、Interface Builder的概念
引用:http://hi.csdn.net/hou_cocoa
Cocoa
是在Mac OS X系统上原生的一个编译环境。他包含两个框架,其实就是一系列的类库,Foundation和AppKit。
在你的iPhone等掌上设备上,使用的则是他的一个子类 - Cocoa Touch 。他所支持的Foundation框架与Cocoa相同,但他的用户图形类库为UIKit,它是为掌上设备特殊设计,提供了你设备上的界面。
Cocoa Touch与Cocoa一个比较鲜明的区别就是Cocoa Touch并不支持垃圾回收机制,这就意味着你必须在你的代码里管理好你的内存。
Foundation
提供了一系列基础数据类型、以及枚举、容器的支持。来自于这个框架的类名以NS开头。
UIKit
iOS上的用户图形包。UI开头的类都来自于这个框架。
于Mac OS X上的用户图形包不同,那上面的图形类来自AppKit,类名以NS开头。
Objective-c
一门iOS和MAC OS X上应用程序开发的语言,同时也是Foundation和UIKit框架所用的变成于洋。
它是C语言的超集,面向对象。
XCode
在MAC OS X上的一个IDE,主要用于代码的编写。
Interface Builder
XCode的一部分,主要用于UI设计。
objective-c – (Cocoa)在单个窗口可可应用程序中,UIViewController子类是什么?
在iOS中,我将把它放在适当的UIViewController子类的viewDidLoad方法中.然后,UITableViewDataSource将访问此数据以填充其单元格.
现在我有一个NSWindow,我可以做一个类似的事情,但如何做一个NSWindowController呢?这甚至是我想要的吗?我可以把它放在AppDelegate中,但似乎不对.
解决方法
即使是Apple docs写道:
In Mac OS X,AppKit view controllers are assistants to the window
controller,which is ultimately responsible for everything that goes
in the window.
因此,OS X中的UIViewController的对应者不是NSViewController,而是NSWindowController,它通过管理单个窗口的整体以及视图的布局/内容/交互来为OS X提供了许多UIViewController对iOS的功能.
在你的情况下,我会使用一个NSWindowController – 尽管应用程序很简单,App代表也是如此.如果应用程序非常复杂,那么使用NSViewController来分割代码就不是一个坏主意.
使用NSWindowController的最佳方式是使用[[CustomWindowController alloc] init]在App Delegate中编程加载它,
@implementation CustomWindowController- (id)init{ self=[super initWithWindowNibName:@"CustomWindowNibName"]; if(self) { //perform any initializations } return self;}@end
或打电话
[[CustomWindowController alloc] initWithWindowNibName:@"CustomWindowNibName"];
直接(并覆盖initWithWindowNibName)如果您希望它可重用.
并且您可以删除MainMenu.xib中的默认窗口.
一般来说,NSWindowController管理一个在其自己的nib文件中实例化的窗口. NSWindowController通常拥有该nib文件. (虽然可以让它管理一个编程方式创建的窗口,但通常不是这样做的)
为了能够使用自定义的NSWindowController,您需要在单独的nib / xib文件中使您的窗口被管理. (使用默认的xib文件意味着您允许Cocoa自动实例化一个NSWindowController,没有机会进行子类化;您不能使用默认的NSMainNibFile定制的NSWindowController.对于一个简单的应用程序,只需将所有控制器代码放在NSApplication / App Delegate中)
至少在Xcode 4中,该过程涉及使用窗口模板和自定义的NSWindowController类创建一个xib,根据这个nib在-init或其中调用[CustomWindowController showWindow:self]实例化CustomWindowController类; (或者如果这不工作,-makeKeyAndOrderFront :)来获取窗口实际显示(in – (void)applicationDid / WillFinishLaunching:(NSNotification *)aNotification可能是一个不错的地方).
要停止默认窗口显示,我只是删除它.可能有更好的方法,但我不知道.
objective-c – .NET程序员学习Objective C和Cocoa有多难?
我已完成.NET版本,但尚未完成UI部分.我正在考虑购买一些第三方控件.
但是,如果我购买这些控件,它们显然只适用于我的Windows版本.我想知道我是否应该尝试在GTK中使用UI并使用Mono和CocoaSharp,或者只是用MS技术构建它并自学Mac端?
我真的不熟悉Mac世界,我想知道可能有多少学习曲线.
我想也许用Ruby或Python重写我的核心逻辑.这就是为什么我可以将.NET版本与.NET控件一起使用,并且可能在Mac上挂起相同的代码.
这是一个针对消费者的教育应用程序.因此,安装不需要很多技术复杂性.
解决方法
>非视觉部分
>开发非可视.NET部分,使其成为最独立的平台.
>用于非可视代码的平台相关代码应该在提供相同接口的小类中隔离,以便可以根据平台插入它们.
>用户界面
>对Windows使用System.Windows.Forms(或您最喜欢的工具包)
>对于Mac OS X,请使用Cocoa桥(请参阅this page选项).
您仍然可以从学习Objective-C中受益:由于Cocoa桥通常基于Apple的API,您可以在Apple的示例代码中找到很多帮助(在Objective-C中).
在Windows上,应用程序将与Microsoft .NET运行时一起运行,在Mac OS X上,应用程序将与Mono运行时一起运行.
DeepMeta application采用了这种策略.正如您所看到的,两个平台上的用户体验非常好.
objective-c – Cocoa Interface Builder对象初始化
或者,对于尚未由Interface Builder处理的类,必须在xcode中显式编写诸如“new”语句之类的代码,以便创建和使用关联的对象.
拥有比我更了解的人来确认或纠正我对Interface Builder的非常天真的理解将是非常好的…
解决方法
对于要通过Xcode访问的每个IB对象,需要声明一个IBOutlet变量.例:
IBOutlet NSWindow* mainWindow; // A Reference to your main window
将此代码放在通过Interface Builder实例化的自定义对象的头文件中(将通用对象拖到类列表中,然后在检查器的“标识”选项卡中,将自定义对象设置为类的实例).然后,在Interface Builder中右键单击自定义对象.您应该会在弹出的窗口中看到IBOutlet的条目.从旁边的小圆圈拖动到(在此示例中)主窗口.您现在可以在Xcode中引用IB对象.
通过建立这些连接(使用IBOutlets作为参考,IBAction作为方法),您可以定义应用程序的大部分行为.
我们今天的关于objective-c – 经验丰富的Cocoa程序员多少依赖Interface Builder来连接他们的应用程序?的分享就到这里,谢谢您的阅读,如果想了解更多关于IPHONE开发基础概念--Cocoa、Foundation、UIKit、Objective-c、XCode、Interface Builder的概念、objective-c – (Cocoa)在单个窗口可可应用程序中,UIViewController子类是什么?、objective-c – .NET程序员学习Objective C和Cocoa有多难?、objective-c – Cocoa Interface Builder对象初始化的相关信息,可以在本站进行搜索。
本文标签: