Code

许多希望开始做苹果软件开发的程序员都苦于没有合适的实例,虽然很多优秀的开源软件,但代码量大,阅读梯度陡峭。下面例子是我在 CocoaChina 发帖时积累下来的一些典型案例。使用Objective-C语言编写,目标明确,代码简洁,是很好入门例子。由于代码短少所以没有附加注释或非常少的注释,如果有无法理解的部分,欢迎在这里留言,发送邮件或者到 Maccocoa OSX 开发论坛 发帖。

近期项目统一使用Lion xcode 4.2建立(xcode 3.2-compatible格式),所有项目都是我编译运行成功的,并且没有说明的话不需要加载额外的库。如果遇到编译问题,请自行简单调整xcode项目参数即可。

如果你觉得这些代码对你有帮助,我也很乐意听到你的声音

All the following projects are published under MIT License

Copyright (c) 2009~2018 Xu Lian (@lianxu)

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the “Software”), to deal in
the Software without restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Open Source Projects:

CATweaker

A helper tool and an Xcode plugin for creating beautiful CAMediaTimingFunction curve.
CATweaker

LXVolumeController

一个系统音量控制的库。可以方便的读取,修改系统音量,还可以监听系统音量变化。

volumeControl

URLTextView

让 NSTextView 自动检测URL链接。

switchbutton

SwitchButton

Cocoa 里使用 NSButton 创建一个仿真开关按钮。

switchbutton

LXFoundation

LXFoundation 提供一个 production ready 的基础类库,替换现有的数据容器。

LoadTTFFont

展示在 Cocoa 环境下,通过代码加载 bundle 内 TTF 字体的例子。

loadfont

GrowlStyleWindow

Cocoa 里实现窗口自绘阴影。View2 窗口为自绘阴影,颜色较深,可以控制阴影位置。View1 窗口为WindowServer 服务渲染的默认窗口阴影。

GrowlStyleWindow

createMultipleWindow

Cocoa 里建立多窗口程序的方法,使用不同的方法建立,包括从xib里建立和直接用代码建立新窗口。

createMultipleWindow

noiseBackground

使用 CoreGraphics 绘制带噪点的背景图片。

noiseBackground

iMoo

使用 NSOutlineView 建立 iTunes 风格列表的实例

outlineview

CAAnimationForPath

展示 CALayer 配合 CoreAnimation 沿任意路线运动。该例中,红色小球沿螺旋路线运动。

pathanimation

BCPainter

一个非常简单的绘画板例子,主要展示一些基本绘图工具的实现方法。该绘画板使用CoreGraphic直接操作图片像素数据,而不是论坛上常见的建立图形对象方法。

bcpainter

WindowTitleMenu

为窗口标题栏添加 popup 按钮的例子。

titlebarmenu

VerticalButtonWindow

实现垂直排列 NSWindow 标准按钮的例子。

verticalbuttonwindow

ATSUI_Vertical

使用 ATSUI 绘制垂直文字的例子。

atsui_vertical

SyncScrollView

2 个 NSScrollView 同步滚动的例子。

SyncScrollView

FullScreenApp

创建一个 Mac OS 下的全屏幕程序。

ZeroIB

有不少朋友发邮件提问如何不使用IB创建 Cocoa 程序实例。现在发一个 ZeroIB,顾名思义不使用 Interface Builder 包括菜单全部由代码生成。

ZeroIB

buttonMadness

NSTableView 里面一列互斥的 NSButton check box 按钮。

buttonMadness

LXScrubbingBar

可拖动的播放进度条,带荧光效果。

LXScrubbingBar

CURLgui

NSTask 用法实例。一个GUI下载器,wrap around curl命令行程序。

CURLgui

TableViewHeaderMenu

NSTableView 表头菜单的例子。

TableViewHeaderMenu

TableView-Example-1

一个不使用 Interface Builder 创建 NSTableView 的例子。

TableView-Example-1

CoolBox

一个使用 CoreGraphics 绘制界面的例子。

CoolBox

WebViewScroller

该实例教你如何改变 WebView 滚动条外观

webviewScroller

daemon

展示如何使用 fork,创建一个守护进程。