存档

作者存档

自定义NSAlert

2014年6月6日 没有评论

NSAlert用于弹出一个确认对话框,在程序中被广泛地使用。常见的场景是用户删除数据,会弹出对话框给用户确认,免得用户不小心导致了误操作。

NSAlert可以采用Modal Window的方式展示

如图:
c45b3dbe8e716d64796e5f2183a3afcb 阅读全文…

分类: 白话Cocoa 标签: ,

一个自适应tableView内容高度的例子

2014年6月5日 没有评论

该demo主要实现的功能:当tableView的内容少时,tableView自适应内容,高度变小,窗口自适应tableView,同样高度变小。当tableView的内容多时,tableView自适应内容,高度变大,窗口自适应tableView,同样高度变大

df6af46e9d0ef338fe2c644f3451b40d

3579e7d1b51cee4f93d933d7a308fc95

阅读全文…

分类: 白话Cocoa 标签:

【WWDC 2014】三个重点:IOS 8、Yosemite、Swift

2014年6月3日 没有评论

北京时间6月3日凌晨,WWDC 2014在热切的期盼中拉开了序幕,这是一场属于苹果全球开发者的大会。
会议的主题是:write the code, change the world。第一次将码农,提升到改变世界的高度,可见苹果公司专注于开发者和软件,以及对于软件生态系统的重视程度。现对本次发布会的三个重点,归纳如下:
阅读全文…

Mac系统中选择保存路径的控件的实现

2014年5月20日 没有评论

Mac系统中选择保存路径的控件

当我们新建了一个文档,保存的时候,Mac系统会弹出一个保存对话框,对话框里面有一个控件,可以选择保存路径
我通过继承NSPopupButton的类SYXPathPopupButton实现相同的效果,并加上了tooltips。如图所示:
1cef770eda080865b0cf6b07b037bf10
阅读全文…

分类: 白话Cocoa 标签:

Safari浏览器地址栏下拉列表的实现

2014年5月4日 没有评论

一、Safari浏览器地址栏下拉列表

642f2ac8db60e55bc6f4d3fb3034d2ad

阅读全文…

分类: 白话Cocoa 标签:

Cocoa网络编程总结之NSURLConnection

2014年4月29日 没有评论
CoreFoundation中提供了一个类NSURLConnection,用于处理用户的网络请求,NSURLConnection基本可以满足我们大多数的网络请求操作。
因为在项目中用得比较多,在此对NSURLConnection的使用做一番简洁的总结。

阅读全文…

分类: 白话Cocoa 标签: ,

有限状态机

2014年3月8日 没有评论

有限状态机的描述

有限状态机(英语:finite-state machine,缩写:FSM)又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。

在描述有限状态机时,状态、事件、转换和动作是经常会碰到的几个基本概念。

状态(State):指的是对象在其生命周期中的一种状况,处于某个特定状态中的对象必然会满足某些条件、执行某些动作或者是等待某些事件。

事件(Event):指的是在时间和空间上占有一定位置,并且对状态机来讲是有意义的那些事情。事件通常会引起状态的变迁,促使状态机从一种状态切换到另一种状态。

转换(Transition):指的是两个状态之间的一种关系,表明对象将在第一个状态中执行一定的动作,并将在某个事件发生同时某个特定条件满足时进入第二个状态。

动作(Action):指的是状态机中可以执行的那些原子操作,所谓原子操作指的是它们在运行的过程中不能被其他消息所中断,必须一直执行下去。
阅读全文…

分类: 算法 标签:

根据类成员变量,自动生成property、synthesize跟description代码

2014年3月7日 没有评论

如果你要让代码既支持编译成32位程序(32位下面没有arc这个东东),同时又支持被编译成64位程序,同时对类的instance variable直接赋值时可以使用到内存管理,一般的做法是既声明instance variable ,同时又写上property、synthesize,因为编译成32位程序,编译器不会自动帮你生成synthesize,同时即便在32位程序里面声明了property、synthesize,而没有声明instancevariable ,程序也会报错;另外,如果你为了要方便debug类的内容,并且可以直接用 NSLog(@”%@”,object)输出你自定义的信息,你一般还需要自己写一个description函数,里面把类所有的变量值打印出来。而如果你的项目类特别多并且instance variable非常多,特别是MVC中Model这一层的类,那么你就要花费很多时间去写这些代码。凑巧,我当前的项目是要编译成32位的,于是为了解放自己的双手,写了这个程序。这个程序确实让我节省了不少时间,避免了许多重复无趣的工作。 阅读全文…

分类: 白话Cocoa 标签: ,