Cocoa Drawing Guide学习part3——颜色AND透明
Jan 28 2014
Uncategorized

Start

cocoa drawing guide学习第三集~总算是写到第三集了啊,看来drawing guide的学习分享应该是能完成的,不过看了看目录貌似还有第四第五第六第七第八的-,-…慢慢来:)

上一期想了想,总觉得是自己再笨拙的翻译,不过后来想了想,看了看,想了想,再看了看,再想了想,觉得自己还是吧一些重要的东西找了出来,也顺着把guide走了一遍,要是只是选出重点,或者选出怎么用來,那就是Cookbook了,所以大家别嫌啰嗦啊,我也是跟着学的,哈哈,不罗嗦了,正片开始。

这一集的故事是颜色和透明的,用好色,用好透,那画出来的界面,肯定杠杠滴。

颜色和透明基础知识

Cocoa的颜色支持构建在Quartz的顶层,NSColor类提供了创建和操作颜色的接口,其他的类提供了颜色和颜色空间的管理,以及在UI上选择颜色的控件。

关于OS X里面的颜色解析,颜色理论和颜色管理,还要看看Color Management OverviewColor Programming Topics,-,-要看的东西真是越来越多了,也不知道看完能不能成cocoa大师啊。

斯坦福第一课里面MVC通信方式整理
Jan 28 2014
Uncategorized

start

前些天在iTunes U里面看到今年斯坦福更新了iOS7的课程,以前也看了部分不过也是由于各种原因,没有全部看完,所以打算这次顺着当美剧追了:P。

Cocoa Drawing Guide那个也还在长线更新着,只是最近项目有点紧张(奇葩吧年前居然还紧张了)哈哈,大坑还是要自己填,不过还是短线写点东西了,表示我还健在XDDDD

在cocoa上开发了一段时间以后对于第一课里面MVC涉及到的通信方法都有了一定的了解,刚好顺便就总结下了。

Cocoa Drawing Guide学习part2——坐标系和仿射变换
Jan 7 2014
Uncategorized

start

cocoa drawing guide学习的第二篇,预览了下,目测是坐标和变换(仿射变换),第一篇里面把coordinate想象成协调了。。。脑内老在用高达Seed里面的协调者(Coordinator)来脑补。。。于是老觉得怪怪的。。。今天终于想了想翻下词典,发现原来这个还有坐标的意思啊。。。。。。2b了啊-,-好了不扯那么多,正片开始了。

PS:关于啥是仿射变换→点我点我←

PPS:大家原谅下,其实part1只是想做读书笔记的,后来想了想还是写下记录下分享下,于是part1会比较粗糙。。。其实part2也很粗糙:P

简介

mac应用里面窗口提供了一个用来绘图的坐标系,cocoa会把窗口移动、变化的情况处理好。每一个添加到窗口中的view都有一个自己的相对坐标系(原文是Local坐标系。。。难道叫菊部坐标系-,-不要不要XDDD),在绘制的时候只需要用view的相对坐标系,不需要和窗口的坐标系进行转换。当前已经有的坐标系可以用数学变化来修改。下面的内容就是讲cocoa怎么管理坐标系,并且使用仿射变换来处理绘图环境的。

Cocoa Drawing Guide学习part1——基础和图形上下文
Dec 28 2013
Uncategorized

start

开篇先简单说下,想要在blog中开主线把apple的一些自己感兴趣的guide好好学习一遍,最近在用的时候,发现绘图和动画方面确实缺了很多东西啊,但是不能像以前一样的半残的看看例子就开始用,还是想好好了解下例子。

这是cocoa drawing guide的第一篇,主要讲了cocoa drawing的基础知识和绘图上下文(Graphics Context,图形上下文)的基础知识。

文章的内容基于Cocoa Drawing Guide的内容以及自己对Cocoa Drawing Guide的一些翻译。

简介

cocoa drawing由AppKit提供并且也兼容其他的模式:
Quartz,OpenGL,Core Image,Core Video,Quartz Composer,PDF Kit,QuickTime

在NSTextField外面画个圆角矩形做背景
Dec 24 2013
Uncategorized

一直看qq之类的高大上的应用里面,他们的TableView上面右边消息数量总有个小红色的椭圆在外面,一直觉得这个高端大气上档次啊,如图:

QQ消息数量

怎么画

而且觉得挺好看的,一直想要弄了来试试看,结果一直没实现,google也似乎没得结果,总以为是字体啊,神马的设置,后来最近开始慢慢看Cocoa Drawing Guide的时候(后面补个学习笔记or心得or读后感XDDD),想了想有招了。

解决使用Delegate时编译的Warning
Nov 20 2013
Uncategorized

最近项目时间比较紧,加上最近工作也有点忙,结果blog又开始长草了-,-。。。现在分享一下记下最近cocoa 开发时近遇到的一个小问题

遇到的问题

Protocol和Delegate是cocoa里面比较常用的设计模式,多用在对象之间进行数据交互,但是最近在我的项目中,发现,使用self.xxxdelegate = xxxdelegate时运行没有任何问题,但是在编译时会出现类型不匹配的警告

NSTableView滚动太快时导致TableViewCell中的图片不断切换的问题
Oct 29 2013
Uncategorized

问题现象

最近一个项目,需要使用NSTableView显示一个列表,列表上显示用户头像和用户信息。在用户很少的时候,也就是item很少的时候,没啥问题,但是找了朋友的帐号来测试的时候,他的账号下有八百多个用户,这就让这个程序出现诡异问题了。在快速滚动的时候,出现了一个现象,当滚动停止时,列表上的头像不断的在变化,一直到变化到一段时间后,才会停止。

初步分析这个问题很奇怪,不过从问题的表象上来看,似乎是图片刷新的问题,Cell的文字部分似乎是不存在这个问题的。当然经过google了一段时间后发现,大家都是搞的UITableView的-,-UI**的。。。iOS这么火,Mac开发快成没人爱的孩子了。。。好吧,那还是自己继续研究了。

Oh My Sed and Awk Cookbook
Sep 25 2013
Uncategorized

为啥写这个

最近的工作里面,因为需要处理很多类似CSV之类的文本文件,让我突然想到了sed和awk这两个上古神器。并且在这两个神器的帮助之下,很多尝试性的工作减少了实际的代码编写量,毕竟脚本和C代码的代码量来看,脚本的编写要更加容易以及快速,在做一些探索性的尝试和对文本文件的处理上,是非常有帮助的。这一篇会随着我的使用慢慢的增多,我会慢慢给大家分享这两个神器以及其他的一些linux或是unix下一些工具的使用,所以潮一点就叫Cookbook了,这里面的命令很多是可以解决实际问题的,我也会对这些命令进行分析,告诉大家什么时候可以用、以及怎样用,同时也希望大家能对这些问题有更新更加优美的解决方法。

关于Awk的

awk拼接命令

awk是一个文本流处理的工具,但是结合了awk,grep,sh以及一些常规的linux命令后,也可以实现通过awk输出shell的脚本,达到自动生成一些命令并执行的效果。

ipc资源清理

公司用的后台服务是tuxedo的,用过的人大概知道,服务配置太多了或者挂了的服务太多了等各种原因会导致整个tuxedo服务器挂掉,这时候tmshutdowntmipcrm都已经失效了,那这时候怎么办呢——杀掉所有tuxedo用户下的ipc资源,那这样一个一个的清除会很麻烦,经过一段时间的Google发现了下面三条命令解决了这个问题

1
2
3
4
5
6
7

ipcs|grep user_name|awk '{print "ipcrm -m " $2}'|sh;

ipcs|grep user_name|awk '{print "ipcrm -q " $2}'|sh;

ipcs|grep user_name|awk '{print "ipcrm -s " $2}'|sh;

简单用起NSTableView
Sep 17 2013
Uncategorized

写在前面

本文不是单独讲NSTableView如何使用,或是如何拖拽,或是其他的,我在参考了Apple的Guide以及一些资料整理后,综合运用NSTableView,NSPasetboard等一些基础技术,来告诉大家如何最简单最快捷的开始用起NSTableView,让新入门的童鞋们能够快速的吧自己的项目run起来,而不是再去花一两周去慢慢看文档了,当然要好好用文档还是少不了滴。

Mac上的TableView

经过一段时间在iOS上的探索后,用自己在cocoa touch开发上半残的经验开始了cocoa开发的历险。在尝试了Button,TextField等基础的东西后,也基于最近在尝试的东西,决定试试当初在iOS开发上卡了好几天才想通怎么弄的TableView了。但是总觉得目前网上关于Mac app开发的资料非常少,主要是iOS太火了吧把Mac的光芒都掩盖了。参考了下Apple关于TableView,OutlineView(为啥是OutlineView,他两是一家子的)的Guide和TableViewPlayground的例子后,不敢说对NSTableView有多少了解,起码怎么用起来是知道了。

在Mac app的开发和iOS app的开发以及使用非常的相似,所以对应iOS上UITableView自然有一个NSTableView为Mac服务。而且其中的使用方法和使用的思想也是非常相似的。因此用过iOS上UITableView的童鞋们,对NSTableView肯定轻松上手了。

成品

上面的图就是今天打算弄的Mac app的成品了,左边是分类,右边是分类下的东西,需要实现的功能包括了,左边选择左边分类的时候,右边显示分类下的东西,右边分类下的东西可以拖拽到左边其他分类中,右边分类下的东西可以拖拽到其他应用中(文本的方式),Add按钮实现在左边分类中添加一个分类并可以编辑名称。会弄的童鞋们肯定觉得这些功能小儿科了,嘛,这个还是挣扎了好几天才能有此结果啊,大家见笑了。

Understanding node.js(翻译)
Aug 15 2013
Uncategorized

本文是对Felix Geisendörfer大神的Understanding node.js的一个翻译,主要是最近发现node.js这个东西似乎确实很强力,虽然不知道自己理解对不对,但是感觉,node.js和go里面最方便的一点就是把多线程以及web后端开发搞的更加容易了。下面正文开始,顺便说下本文主要自己学习的以及标题取得都挺洋气的就保留了,翻译水平不好,见谅啊=_,=,顺便说下,想学的同学可以去这里看看The Node Beginner Book

在我将node.js介绍给别人后,他们大多数有两种反应,一种是马上就了解了,另一种则觉得非常的疑惑。如果你是第二种人,那么我将试图这样来解释node.js是什么

  • node.js是一种命令行工具,你下载tar包,编译,安装源代码
  • node.js可以让你在终端直接一句node my_app.js直接运行你的JavaScript程序
  • node.js使用V8引擎(就是那个让Google的Chrome能run的飞快的东西)解析执行JS脚本
  • node.js提供了通过JavaScript访问网络和文件系统的API