
mac
meteor1113
c ,emacs,mac
展开
-
powerplant中broadcast和command的一点体会
LBroadcaster和LListener是配对的,从LListener继承的类可以获得消息并处理,从LBroadcaster继承的类可以广播消息出去。所以一般可以将view类从LListener继承,把view上的控件类从LBroadcaster继承,然后控件将控件AddListener到view上去,这样控件有消息的时候就可以在LListener的ListenToMesseng里处理原创 2009-07-15 11:44:00 · 625 阅读 · 0 评论 -
cocoa笔记1
HideMenuBar()和ShowMenuBar()可以用来隐藏和显示系统菜单和dock。cocoa中使用NSCursor管理光标,NSCursor的set函数更改当前的光标,NSView和NSWindow等的resetCursorRects类可以定义光标在某个区域的形状。用NSScreen管理屏幕。View类存储了两个矩形,存储它在superview的坐标位置的叫做frame,存储原创 2009-07-15 11:56:00 · 824 阅读 · 0 评论 -
powerplant中的消息处理
今天基本明白了powerplant中的LCommander和LListener/LBoradcaster。LCommander用来逐级处理命令,每个LCommander实例都有一个mSuperCommander的指针指向其父级对象,最上层的LCommander实例的mSuperCommander指针为空。每个LCommander对象(比如自己从LCommander和其它类继承下来的类)原创 2009-07-15 11:46:00 · 402 阅读 · 0 评论 -
关于iterm的中文输入
macos X中,用telnet连linux的终端,一定要加-8的参数才可以支持中文输入,如果用ssh的话直接就可以支持.原创 2009-07-15 11:57:00 · 1484 阅读 · 0 评论 -
多线程及其它
这儿说的多线程是指posixthread库。pthread_create创建线程,pthread_join等待线程结束。MPCreateSemaphore创建信号量,MPSignalSemaphore发送信号量,MPWaitOnSemaphore等待某个信号量之后再继续,MPDeleteSemaphore销毁信号量。可以在单独的线程中建立NSAutoreleasePool管理线程的原创 2009-07-15 11:57:00 · 705 阅读 · 0 评论 -
ZeroLink
XCode的这个ZeroLink可把人害苦了,据文档说是可以提高应用程序的速度,但是如果程序中有在main之前就初始化的静态对象的话就会产生错误。XCode默认debug版打开这个选项,release版关闭这个选项,花了一周的时候调试错误,最后发现是ZeroLink的问题,把这个选项关闭就好了。原创 2009-07-15 11:56:00 · 1044 阅读 · 2 评论 -
powerplant中的命令和消息
powerplant中,LCommander类处理消息,它的命令被ObeyCommand处理,这个主要用来处理菜单命令,可以在FindCommandStatus中设置菜单的状态。LCommander中命令处理是分级的,下级往上级传,当前接收的那个是LCommander的一个静态变量叫sTarget,可以用SwitchTarget来切换。sTarget所指的LCommander对象首先接收到原创 2009-07-15 11:46:00 · 498 阅读 · 0 评论 -
powerplant中view的click消息处理
powerplant中,有嵌套view的话Click事件会首先被最里层的view接受,如果里层的view没有改写click函数的话会一直传到LView的Click,这里面的Click首先查找这个view里最里层的LPane,然后调用最里层LPane的Click,因为LControl也是从LPane继承,所以如果view里有控件的话会执行控件的事件。如果一个view里要响应鼠标点击的事件原创 2009-07-15 11:45:00 · 494 阅读 · 0 评论 -
cocoa的KVO以及loadNib
KVO:KVO(Key Value Coding)是cocoa中用来设值或取值的协议(NSKeyValueCoding),跟java的ejb有点类似。都是通过对变量和函数名进行规范达到方便设置类成员值的目的。具体的说,NSKeyValueCoding规定了很多函数,其中最常用的是setValue:forKey:和valueForKey:,默认的实现中,对一个类调用setValue:forK原创 2009-07-15 11:57:00 · 1380 阅读 · 1 评论 -
cocoa-从.nib文件动态生成实例
使用NSBundle类的+ (BOOL)loadNibNamed:(NSString *)aNibNameowner:(id)owner方法,可以通过载入一个nib类来生成nib文件中的所有实例,并且可以多次载入,这样就可以动态生成.nib的实例,只要owner参数不一样,那么就可以通过不同的owner来管理不同的实例了。原创 2009-07-15 11:55:00 · 735 阅读 · 0 评论 -
cocoa-awakeFromNib
当.nib文件被加载的时候,会发送一个awakeFromNib的消息到.nib文件中的每个对象,每个对象都可以定义自己的awakeFromNib函数来响应这个消息,执行一些必要的操作。原创 2009-07-15 11:55:00 · 549 阅读 · 0 评论 -
OSX10.5中的git
为了省事,在10.5中我都是从code.google.com下载git-osx-installer来安装。不过,从git-1.6.4.1起,作者把git gui依赖的tcl/tk版本升级到8.5了, (OSX10.5默认安装的tcl/tk是8.4的),所以在OSX10.5中运行git gui会报错。 解决办法是自己下载8.5版的tcl/tk安装。不过为了这么点小功能就安装 tcl/tk-8原创 2009-09-23 14:56:00 · 2393 阅读 · 0 评论