XCode 4 以后,项目模版中没有了 Window-based Application,跟它比较接近的项目模版是 Empty Application. 如下图的选择:
我们想建一个 Window-based Application,需要在 Empty Application 基础上做一些设置。
下面是操作步骤,
新建一个 Empty Application
默认的 Empty Application 项目包含下面文件
创建 MainWindow.xib
新建一个 window类型的xib,命名为:MainWindow.xib, 如下图
新建好 MainWindow.xib 后
指定 MainWindow.xib 的 File‘s Owner的所属类为 UIApplication。如下图,
从Libray中拖动一个 Object 到界面上
指定刚刚拖入的Object的所属类为 应用的 AppDelegate, 这里是 WBAppAppDelegate,如下图:
设置好了后,Object 会立即变成 App App Delegate的名字。
把 MainWindow.xib的 File's Owner 的 delegate 跟 我们刚刚建立的 App App Delegate 建立关联:
关联的拖动是在 Show the Connections inspector 中的,即最右边的那个
修改 WBAppAppDelegate.h 文件,把 window 暴露给 xib 文件, 即增加IBOutlet 属性
修改前代码:
@property (strong, nonatomic) UIWindow *window;
修改后代码:
@property (strong, nonatomic) IBOutlet UIWindow *window;
然后需要在.m文件进行如下修改:
把原来的代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColorwhiteColor];
[self.windowmakeKeyAndVisible];
returnYES;
}
修改成以下的形式
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColorwhiteColor];
[self.windowmakeKeyAndVisible];
returnYES;
}
把 App Delegate 的 window 跟界面上的Window捆绑
设置 应用的主界面
到此我们就建立了 Window-base Applicaiton。
为了这里的简单演示,我们这里在 MainWindow.xib 文件上放一个有文字的标签,可以一目了然的看到执行效果: