写这篇文章主要是为了回答上次问的问题。(参见 在为BookReader实现书签功能的时候遇到一个非常奇怪的问题。)
上次遇到的问题实际上源自于我对于Cocoa的文字处理系统构架的不熟悉,还在试图用.NET的那一套思想。先说解决方法,这是Cocoa mail list里的一个大牛给的:
使用NSTextView相关NSLayoutManager的Delegate Method
- (void)layoutManager:(NSLayoutManager *)aLayoutManager didCompleteLayoutForTextContainer:(NSTextContainer *)aTextContainer atEnd:(BOOL)flag
More
Tags: Cocoa
BookReader是我写的Mac下面的小说阅读软件,做它的初衷是Mac下面找不到能打开UMD格式的东西……
现在大部分的功能都实现了,就差书签了,本来准备今天搞定的,现在被一个奇怪的问题挡住了。
功能设计如下:
BookReader在关闭的时候会把当前打开的文件路径和阅读进度(其实就是滚动条的位置)记录下来,下次打开的时候如果发现打开的文件有阅读进度记录则把滚动条跳转到记录的位置。
本来以为这是个简单的功能,应该很容易实现,所以写了如下代码:
More
Tags: BookReader, Cocoa
这个标题随着看管的年龄而修改,例如我就是,如何证明你活了27年?
在看这部电影之前,我一直非常好奇说服的过程。说服一群大学教授相信有一个人活了14000年是非常困难的事情。
这个好奇也伴随这看电影的每一分钟,可以说,里面的每一个问题我都会思考,这个好奇心让我真正觉得是参与了这次讨论,当然,只是以听者的身份,以我的认知程度来说,距离在场的各位教授不是一点半点。
看完之后我在想的问题就是,我如何证明我真得活了27年?
More
这段时间太忙了,导致我的Cocoa学习计划延迟了很久。今天花了些时间看了看基础知识文档,终于搞清楚了什么是Categories和Protocol。
Categories
用来扩充已有类,很像C#的关键字Partial。可以在不需要源代码的情况下扩充已有的类,但是只能添加方法,不能添加类变量。
More
Tags: Cocoa
属性是一种定义类所提供的数据的通常方法。在Movie这个类里,诸如“标题”,“工作室”和“发布年份”等等都算是属性。这里是用Objective-C 1.x语法定义的Movie类:
More
Tags: Cocoa
今天发现了一个很有特色摄影师的个人站点, 上面的照片都非常不错, 马上起了收藏的念头. 但是逐个保存的话太费时费力了, 马上写个程序来下载的话又觉得小题大作了.
好在这个时候我想起了Automator这个好东西. 打开看了一下, 发现真得可以用很少的步骤就做好批量下载图片这件事情.
More
Tags: Automator
很长一段时间没有更新Blog了, 为的就是等待拥有一台真正的Mac, 经过了两个月的等待, 我终于迎来了我的第一台Mac也是我人生中第一台自己购买的最贵的东西 – Macbook Pro 895.
老实说, 用起来的感觉好极了, 工业设计和细节让我真得觉得非常完美.
夸赞的话我就不说了, 网上一找一大堆, 先说点让我不舒服的地方:
1. 无线鼠标.
早听说左右难分, 今天深刻体验了, 原来随便都能点中右键真得是一种幸福….
2. 屏幕亮度
默认有个选项”随环境光的改变自动调整亮度”, 看起来真高级, 但是用起来就… 因为太灵敏了, 当我随着音乐摇晃的时候能明显的看到我的屏幕也在跟着节奏闪烁….
当前就这两点, 总体来说895是非常不错的, 让我都真的有了拿它去星巴克看小说的冲动了.
今天太晚了, 明天更新照片!
买家:老板,这个手机的铃声怎么样?
卖家:绝对能响
买家:老板,我同学说的,你们这里买的手机,即使从4楼上掉下来摔坏了,你们
也可以换的,是这样吗?
卖家:你们应该多关心一下这位同学,不要让他一个人呆着,多陪他说说话,参加
一些集体活动。如果还不见有什么好转的话,可以送到医院观察一下。
买家:哦。。。。。。
More
正则表达式是我非常常用的编程工具, 以前不管是在Ruby还是C#中使用率都非常高. 现在开始学习Cocoa之后就一直想知道如何使用正则表达式, 在Cocoa自带的库里面找了很久居然发现没有相应的支持库(BS一下, 这种常用的东西居然没有, 也不知道苹果是怎么想的….).
上网找了不少各式各样的库, 用下来要么体积太大, 要么结构设计的不舒服, 最后把目标锁定在了 OgreKit 上.
More
Tags: Cocoa, 正则表达式
最近非常流行一种理念 – Getting Things Done (尽管去做 — 无压工作的艺术) 简称 GTD.
GTD,Getting Things Done的缩写。《 Getting Things Done-The Art of Stress-Free Productivity》一书的作者David Allen将GTD总结成为一种将繁重超负荷的工作生活方式变成无压力高效的时间管理系统。
这种GTD系统的内容包括:
* 搜集记录所有你在操心的事情。
* 定义出可以付诸实施的行动及其结果和具体的实施步骤。
* 根据你需要获取的方式和时间,按照合适的分类,以流水线的方式组织整理备忘录和相关信息。
* 对你的承诺从目的、远景、目标、关注的范围、项目和行动几个方面保持及时和合理的回顾评估。
这些并不是空洞的说教。把你正在处理的每一件事以你信任的方式记录下来而不是放在脑子里,首先就可以减轻焦虑。找到马上可以实施的行动,制定完成的标准,以线性而不是并发方式一件一件处理,本身就是一种高效的方式,并能通过目标的完成感受到成就感。及时对这个系统中的信息回顾可以保证必须完成的事情不被遗忘,不必要的工作及时放弃,同时让你对这个系统本身更信任,更容易通过这个系统来记录每件工作来减轻焦虑和提高效率,以此进入一个良性循环。在无压力或者压力尽量少的状态下完成工作,GTD所倡导的并非一个不切实际的时间管理理论。
Midnight Inbox就是根据这一理念实现的协助软件, 我试用了一段时间之后觉得非常不错, 强烈推荐使用!
注册名: Special [k]
邮件地址: team@special[k].stw
注册码: INB0X-QPR2-RR02-9CAF-Q3TT-FPN1-XU65-MYQX
下载地址:http://s3.amazonaws.com/midnightbeep/Inbox.dmg
GTD理念中文书 下载地址: http://www.mifengtd.cn/articles/ … ne_cn_download.html