热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

cocoa入门级别的源码

Code许多希望开始做苹果软件开发的程序员都苦于没有合适的实例,虽然很多优秀的开源软件,但代码量大,阅读梯度陡峭。下面例子是我在CocoaChina发帖时积累下来的一些典型

Code

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

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

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

协议

FreeBSD License Copyright 2011 Beyondcow. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY Beyondcow “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Beyondcow OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of Beyondcow.

开源列表

LXVolumeController

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

volumeControl

URLTextView

让NSTextView自动检测URL链接。

switchbutton

SwitchButton

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

switchbutton

LXFoundation

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

LoadTTFFont

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

loadfont

GrowlStyleWindow

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

GrowlStyleWindow

createMultipleWindow

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

createMultipleWindow

noiseBackground

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

noiseBackground

iMoo

使用OutlineView建立iTunes左侧列表风格的实例

outlineview

CAAnimationForPath

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

CAAnimationForPath

BCPainter

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

bcpainter

WindowTitleMenu

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

titlebarmenu

VerticalButtonWindow

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

verticalbuttonwindow

ATSUI_Vertical

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

atsui_vertical

SyncScrollView

2个ScrollView同步滚动的例子。

SyncScrollView

FullScreenApp

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

ZeroIB

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

ZeroIB

buttonMadness

NSTableView里面一列互斥的checkbox按钮。

buttonMadness

LXScrubbingBar

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

LXScrubbingBar

CURLgui

一个GUI下载器,wrap around curl命令行程序。

CURLgui

TableViewHeaderMenu

NSTableView表头菜单的例子。

TableViewHeaderMenu

TableView-Example-1

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

TableView-Example-1

CoolBox

一个代码绘制的box。

CoolBox

WebViewScroller

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

webviewScroller

daemon

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


推荐阅读
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了iOS开发--漫谈内存管理相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • iOS Swift中如何实现自动登录?
    本文介绍了在iOS Swift中如何实现自动登录的方法,包括使用故事板、SWRevealViewController等技术,以及解决用户注销后重新登录自动跳转到主页的问题。 ... [详细]
  • 本文介绍了MVP架构模式及其在国庆技术博客中的应用。MVP架构模式是一种演变自MVC架构的新模式,其中View和Model之间的通信通过Presenter进行。相比MVC架构,MVP架构将交互逻辑放在Presenter内部,而View直接从Model中读取数据而不是通过Controller。本文还探讨了MVP架构在国庆技术博客中的具体应用。 ... [详细]
  • CentOS7.8下编译muduo库找不到Boost库报错的解决方法
    本文介绍了在CentOS7.8下编译muduo库时出现找不到Boost库报错的问题,并提供了解决方法。文章详细介绍了从Github上下载muduo和muduo-tutorial源代码的步骤,并指导如何编译muduo库。最后,作者提供了陈硕老师的Github链接和muduo库的简介。 ... [详细]
  • Ansibleplaybook roles安装redis实例(学习笔记二十九)
    1、相关redis参数:2、templatesredis.conf配置相关参数:daemonizeyespidfilevarrunredis_{{red ... [详细]
  • linux编写弹球游戏,手把手教你开发一款基于Box2D的弹球游戏(一)
    今天我们来介绍一款物理引擎,并基于它完成一个弹球游戏。提到物理引擎,就是在游戏中模拟真实世界的运动,碰撞,摩擦等等。Coco ... [详细]
  • IvebeentryingforadayortwototryandgetashadowtodrawinsidethetextofanNSTextField ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 006_Redis的List数据类型
    1.List类型是一个链表结构的集合,主要功能有push,pop,获取元素等。List类型是一个双端链表的结构,我们可以通过相关操作进行集合的头部或者尾部添加删除元素,List的设 ... [详细]
  • Redis底层数据结构之压缩列表的介绍及实现原理
    本文介绍了Redis底层数据结构之压缩列表的概念、实现原理以及使用场景。压缩列表是Redis为了节约内存而开发的一种顺序数据结构,由特殊编码的连续内存块组成。文章详细解释了压缩列表的构成和各个属性的含义,以及如何通过指针来计算表尾节点的地址。压缩列表适用于列表键和哈希键中只包含少量小整数值和短字符串的情况。通过使用压缩列表,可以有效减少内存占用,提升Redis的性能。 ... [详细]
  • 2021最新总结网易/腾讯/CVTE/字节面经分享(附答案解析)
    本文分享作者在2021年面试网易、腾讯、CVTE和字节等大型互联网企业的经历和问题,包括稳定性设计、数据库优化、分布式锁的设计等内容。同时提供了大厂最新面试真题笔记,并附带答案解析。 ... [详细]
  • 本文整理了Java中java.lang.NoSuchMethodError.getMessage()方法的一些代码示例,展示了NoSuchMethodErr ... [详细]
  • python中安装并使用redis相关的知识
    本文介绍了在python中安装并使用redis的相关知识,包括redis的数据缓存系统和支持的数据类型,以及在pycharm中安装redis模块和常用的字符串操作。 ... [详细]
author-avatar
超级娱乐测试_499
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有