《苹果开发之Cocoa编程》挑战1 创建委托 练习

时间:2023-03-08 17:50:12

《苹果开发之Cocoa编程》第4版

《苹果开发之Cocoa编程》挑战1 创建委托 练习

P87 新建一个单窗口应用程序,设置某对象为窗口的委托,当用户调整窗口尺寸时,确保窗口高度为宽度的2倍。

需要实现的委托方法为:-(NSSize)windowWillResize:(NSWindow *)sender toSize:(NSSize)frameSize;第一个参数时重新调整尺寸的窗口,第二个参数时一个包含需要尺寸的C结构体。

typedef struct _NSSize{
    float width;
    float height;
} NSSize

创建一个200点宽,200点高德NSSize对象的代码为:

NSSize newSize = NSMakeSize(200.0,100.0);
NSLog(@"newSize is %f wide and %f tall", newSize.width, newSize.height);

1.Xcode新建一个Cocoa Application

《苹果开发之Cocoa编程》挑战1 创建委托 练习

2.项目名称和前缀为ResizeWindow,或你自定义的名称。

《苹果开发之Cocoa编程》挑战1 创建委托 练习

3.在Interface Builder的Size Inspector中设置窗口的初始化尺寸。

《苹果开发之Cocoa编程》挑战1 创建委托 练习

4.添加Delegate委托函数

在ResizeWindowAppDelegate.m文件中添加如下代码

-(NSSize)windowWillResize:(NSWindow *)sender toSize:(NSSize)frameSize
{
    NSSize newSize = NSMakeSize(frameSize.width, frameSize.width * );
    return newSize;
}

5.将windowWillResize函数连接到window窗口的Delegate(委托)。

在在Interface Builder中按着control键单击window图标,在弹出的窗口中左键拖曳delegate到Resize window App Deleage图标上(蓝色的图标,代表App对象)

《苹果开发之Cocoa编程》挑战1 创建委托 练习

6.OK,运行程序试试效果吧。苹果软件开发刚刚学习,还没入门。Mac Xcode下写代码的方式还是和windows下写代码不同呀。

源代码下载:《苹果开发之Cocoa编程》挑战1 创建委托 练习