Cocoa China 苹果开发中文站

苹果Mac OS X开发 iPhone开发 Cocoa以及Cocoa Touch

推荐使用Safari浏览器阅读本站

用户体验

在Dock图标上画进度条

如果你用过Toast这个刻录软件,你会发现在刻录的时候,Dock图标上会有一个进度条,表示刻录的进度。如果你在用XCode,编译的时候图标上也会有一个进度条表示编译的进度。

其实在Dock图标上画进度条是很简单的事情,你只需要做如下工作即可:

点击这里阅读全文 »

在XCode中使用黑色HUD窗口风格控件

Leopard中提供了HUD形式的窗口,但是并没有提供其他同样风格的控件,诸如按钮、单选框等。BGHUDAppKit是一个专门制作这种风格的开发包,专门用于制作HUD整体风格的UI。

之前其实也有人实现过类似功能的程序,最知名的是Matt Gemmell的HUDWindow,但是BGHUDAppKit的特点是并没有使用图片进行UI的处理,而是完全用代码将界面画出来。这样做的好处很明显,做出来的程序是与分辨率无关的,也就是说无论在什么分辨率下(即使你用30寸的显示器)显示的效果都是完全一样的。

点击这里阅读全文 »

iPhone官方SDK:如何隐藏UINavigationBar

我在写电子书Tread的时候,想实现自动隐藏UINavigationBar,以达到iPhone上面浏览Photo的效果.

当时NavigationBarUINavigationController里面是private,无法把她变成透明.

 

最后只好把它"推出"view 外面,来达到隐藏的目的.

点击这里阅读全文 »

OmniGraffle的iPhone模板

使用Mac的人都知道OmniGraffle是苹果下最好的画流程图及制作界面的工具(类似Windows下的Visio,不过更好用)。这里提供一个非常好的iPhone模板,你可以使用OmniGraffle设计iPhone的界面了。

点击这里阅读全文 »

 

iTunes提供了新的CoverFlow效果,其中自带了一个动画形式的滚动条,完全不同于以往苹果的滚动条形式。你也可以在Leopard的Finder里找到这种动画形式的滚动条。

本文介绍如何创建这种滚动条,以便你可以在自己建立的CALayer中方便地添加。这篇文章的例子还可以做为很好的Core Animation教学供你参考。

点击这里阅读全文 »

Core Animation教学:如何使用CALayer的遮罩(mask)

在Core Animation的层中使用遮罩使图片的某些部分变为透明是非常简单的事情,你只需要建立一个遮罩层,设置为另一个层的mask即可。相关信息在本站的 Core Animation:用最少代码画出照片倒影效果 中有所提及。只是之前例子中的遮罩是使用Photoshop进行创建的。

本文通过一个简单例子,直接创建一个CGImageRef图片做为遮罩,继续讲解如何在Core Animation中使用遮罩。

点击这里阅读全文 »

苹果在最新发布的Macbook Air中,应用了最新的触摸板,这种触摸板实现了广为好评的iPhone中的多点触摸MultiTouch技术,你可以用两根或者三根手指在触摸板上做出叫做手势(Gestures)的动作,程序可以对你的动作进行诸如缩放、旋转、翻页等响应。而在未来,新的Macbook Pro也将带有这种全新的触摸板。

不过虽然触摸板硬件本身带有这种技术,不过目前也只有少量苹果随机自带的程序支持多点触摸功能。那么如何在你自己的应用程序中也加入这种全新体验的功能,就是本文讨论的课题。

 

点击这里阅读全文 »

教程:如何在程序中加入Growl通知

Growl是一个非常好用的通知框架,可以帮助你轻松制作各种非常酷的事件通知效果。这个教程教你如何简单地在自己的应用程序里加入Growl通知。请阅读正文。

 

点击这里阅读全文 »

教程:如何以动画形式动态缩放窗口

Cocoa提供了一系列动画形式的窗口缩放特效,你也许经常能够看到他们,比如在Pages里的检查器,或是一些应用程序的系统预置中,在你选择不同选项的时候,你就会看到窗口以动画的形式自动改变大小。如何实现这种效果呢?请阅读本文。

 

点击这里阅读全文 »

如何以sheet形式显示窗口

我们经常能够看到OS X中不少应用程序使用了Sheet形式的窗口,看起来是个对话框,但是弹出的效果是动画形式从上到下的。我们如何在自己的程序中使用这种Sheet窗口呢?

 

点击这里阅读全文 »

如何为视图设置鼠标指针图形

有时候你希望设置鼠标的样式,比如选择图片时,你希望鼠标指针是一个十字形。将以下代码加入NSView的子类中:

 
- (void) resetCursorRects
{
    [super resetCursorRects];
    [self addCursorRect: [self bounds]
                                      cursor: [NSCursor crosshairCursor]];
           
}

如何将实现类似iPhone形式的页面卷动

像iPhone那种用手指拖拽形式的页面卷动在某些情况下很有用。如果是一个比较大的图形或者列表,显然这种滚动形式更容易看清楚。

您只要阅读本文就知道如何简单地实现了。
 
 

点击这里阅读全文 »

使NSTableView同时支持拖拽替换和拖拽插入

当你的NSTableView做为一个拖拽目标时,你可能希望同时支持拖拽替换当前项目,或者拖拽后在当前位置插入新的项目。你需要使用NSTableView -setDropRow:dropOperation:方法。本文介绍如何通过代码实现NSTableView的这种拖拽功能。

点击这里阅读全文 »

在NSTableView排序时,我们可以通过增加一个小小的三角箭头图形,让表格的排序看得更加清楚。 

将这段代码放到 mouseDownInHeaderOfTableColumn 或者 didClickTableColumn
 
NSImage *indicatorImage;
if (sortAscending) {
            sort your data ascending
            indicatorImage = [NSImage imageNamed: @"NSAscendingSortIndicator"];
} else {
            sort your data descending
            indicatorImage = [NSImage imageNamed: @"NSDescendingSortIndicator"];
}
sortAscending = !sortAscending;
 
[tableView setIndicatorImage: indicatorImage
                               inTableColumn: tableColumn];
 
[tableView reloadData];

当用户在修改表格中的数据时,按回车、TAB或者shift+TAB键,会结束当前的编辑,同时跳到下一行。

但是某些时候你可能不希望跳到下一行,用户希望编辑特定的行,并不想编辑其他行。那么如何用代码禁用这一功能呢?

点击这里阅读全文 »

最新讨论