《苹果开发之Cocoa编程》挑战1 创建委托 练习
《苹果开发之Cocoa编程》第4版
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
2.项目名称和前缀为ResizeWindow,或你自定义的名称。
3.在Interface Builder的Size Inspector中设置窗口的初始化尺寸。
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对象)
6.OK,运行程序试试效果吧。苹果软件开发刚刚学习,还没入门。Mac Xcode下写代码的方式还是和windows下写代码不同呀。
源代码下载:
《苹果开发之Cocoa编程》挑战1 创建委托 练习的更多相关文章
- 《苹果开发之Cocoa编程》挑战2 创建一个数据源 练习
<苹果开发之Cocoa编程>第4版 P87 创建一个to-do list应用程序,在文本框中输入任务.当用户单击Add按钮时,添加字符串到一个变长队列,新任务就出现在list的末尾. 关键 ...
- 苹果开发之COCOA编程(第三版)上半部分
第一章:什么是Cocoa 1.1 历史简介 1.2 开发工具:Xcode.Interface Builder(一个GUI构建工具).在它们内部,使用gcc为编译器来编译代码,并使用gdb来查找错误 1 ...
- 《苹果开发之Cocoa编程》键-值编码和键-值观察
一.KVC 键-值编码(Key - Value Coding, KVC)是通过变量名的读取和设置变量值的一种方法,将字符串的变量名作为key来引用.NSObject定义了两个方法(KVC方法)用于变量 ...
- 苹果开发之COCOA编程(第三版)下半部分
第十八章:Image和鼠标事件 1.NSResponderNSView继承自NSResponder类.所有的事件处理方法都定义在NSResponder类中.NSResponder申明了如下方法:- ( ...
- IOS开发之Cocoa编程—— NSUndoManager
在Cocoa中使用NSUndoManager可以很方便的完成撤销操作.NSUndoManager会记录下修改.撤销操作的消息.这个机制使用两个NSInvocation对象栈. NSInvocation ...
- 苹果开发之App签名
如果你的Apple ID账号(可使用邮箱来注册)为Apple developer类型的话,登录之后是看不到Certificates, Indentifiers & Profiles信息的 Ap ...
- iOS项目开发之Socket编程
有一段时间没有认真总结和写博客了 前段时间找工作.进入工作阶段.比较少静下来认真总结,现在静下心来总结一下最近的一些心得 前言 AsyncSocket介绍 AsyncSocket详解 AsyncSoc ...
- Unity3D游戏开发之C#编程中常见数据结构的比较
一.前言 Unity3D是如今最火爆的游戏开发引擎,它可以让我们能轻松创建诸如三维视频游戏.建筑可视化.实时三维动画等类型的互动内容.它支持2D/3D游戏开发,据不完全统计,目前国内80%的手机游戏都 ...
- 李洪强iOS开发之OC[013] -类的创建的练习
// // main.m // 12 - 类的创建练习 // // Created by vic fan on 16/7/9. // Copyright © 2016年 李洪强. All ri ...
随机推荐
- 利用ps指令查看某个程序的进程状态
ps -ef是查看所有的进程,然后用grep筛选出你要的信息. eg.
- sourcetree使用问题汇总
1.可优先查阅博文<git 用户手册 1.5.3及后续版本使用>: 2.问题1 Cloning into 'folder'... warning: templates not found ...
- iOS多线程之GCD学习笔记
什么是GCD 1.全称是Grand Central Dispatch,可译为“牛逼的中枢调度器” 2.纯C语言,提供了非常多强大的函数 GCD的优势 GCD是苹果公司为多核的并行运算提出的解决方案 G ...
- 对于C#中的一些点滴你真的理解了吗?
废话不多说看题目,看看我们自己真的理解了吗? 1.如下代码输出的结果是什么? public class A{ public virtual void Func(int number=10) { Co ...
- 数组的filter方法
filter()函数用于过滤序列,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素. eg: var arr=[10,11,12,13,14 ...
- 2013年9月份第1周51Aspx源码发布详情
大型B2B家具门户网源码 2013-9-6 [VS2008]功能描述: 1.门户信息管理 安全取数据即使数据库连接中断不会报错 2.稳定性 每句代码经过3次以上检查.此网站还在运营3年了,没有出过问 ...
- C#基础--面向对象计算器
static void Main(string[] args) { //new个对象 Calculator cal = new Calculator(); //做事情 cal.Run(); } /// ...
- 5月18日:top10面试算法-LRUcache的实现
问题描述: LRU算法:优先把那些最长时间没使用的对象置换掉.根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”. JAVA实现: 测试: publ ...
- SVG 2D入门7 - 重用与引用
前面介绍了很多的图形元素,如果很多图形本身是一样的,需要每次都去定义一个新的么?我们能否共用一些图形呢?这是这节的重点 - SVG元素的重用. 组合 - g元素 g元素是一种容器,它组合一组 ...
- hdu 2058
PS:TLE了N次...虽然结果对了...后来看了公式才知道要枚举项数才行... 代码: #include "stdio.h"#include "math.h" ...