Cocoa China 苹果开发中文站

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

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

字符串处理

在Cocoa中使用JSON

JSON是一种新的用于在互联网上进行数据交换的标准格式。由于它的冗余、可读性和可解析性都比XML要好,因此JSON这种数据交换格式越来越广泛地运用于Web应用,尤其是Ajax应用中。

在Cocoa中使用JSON也很简单,目前有两个JSON的框架,都很容易使用,而且都对NSDictionary进行了扩展,您可以选择其一将JSON“揉”到您的Cocoa应用程序里。

点击这里阅读全文 »

初学者:介绍NSLog的使用

可能你曾经有过Windows编程的经验,通常在你调试程序的时候,如果希望看到某个中间结果,你会习惯使用MessageBox来显示中间的结果。

有了Cocoa的NSLog,你在写Cocoa程序的时候,就可以无需每次都调用NSAlert来观察中间结果了。

点击这里阅读全文 »

如何使用Cocoa保存XML格式的记录文件

 在Cocoa中保存XML的属性列表文件(plist)是很容易的事情。NSArray,NSDictionary, NSString, 或者 NSData都可以保存为XML格式的plist文件。如果NSArray或者NSDictionary中还包含其他可以保存为属性列表的对象,它们可以一起存储在plist文件中。

下面是保存的方法:

点击这里阅读全文 »

Cocoa模板引擎

如果你用过php的Smarty,你一定知道模板引擎说的是什么。Matt Gemmell开发了一个基于Cocoa的类似的模板引擎,叫做MGTemplateEngine。

MGTemplateEngine是一套Cocoa的模板系统,基于模板和数据来生成文字输出,非常类似Smarty、FreeMarker和Django及其他的模板引擎。

如果你希望在Cocoa程序中通过参数生成文本数据的话(比如需要循环或者有条件选择的情况),包括创建HTML页面代码(或者基于Webkit的用户界面)、生成票据或者其他需要打印的模板、合并邮件、数据导出或者其它事情,那么这套引擎是一个非常棒的选择。

点击这里阅读全文 »

在自定义NSTextField中响应键盘消息

看到Cocoachina讨论区上有人问起NSTextField的问题,翻译一下这篇文章。希望能够对大家有一定的参考意义。

这个代码做的事情很简单,按键盘的“上”,文本框中的数字会增加,反之,按“下”,文本框中的数字会减少。

点击这里阅读全文 »

随处使用Cocoa文字系统

 

在某些情况下你可能需要对想显示在屏幕上的文字做更多的控制,而不是仅仅使用NSTextField或者NSTextView,有时候你需要更高效地在屏幕上画文字,而不想使用NSStringDrawing方法。还可能你需要在CGContext上画文字,再有可能你想在一个Carbon程序中画文字。

 

这个时候,你就可能会考虑CoreText了,不过你还可能想兼容Mac OS X 10.4。这里又一个简单的方法可以满足你全部的需要。

点击这里阅读全文 »

扩展NSLog使其更方便阅读

Cocoa提供了一个很方便的调试类NSLog,可以让你非常方便地查看输出、错误等内容,这样你在调试程序的时候可以方便地截获信息。

不过NSLog有时候也不怎么方便,尤其当你的程序比较大或者包括很多NSLog的时候,经常找不到哪个信息是你需要的。下面这段代码可以帮助你解决这个问题。

点击这里阅读全文 »

教程:通过NSTask用Cocoa执行perl脚本

本文将用一个例子帮助你理解如何使用NSTask,例子通过在Cocoa中执行一个perl脚本,实现去掉给定NSString中的所有HTML标签。

 

点击这里阅读全文 »

小技巧:如何将NSString字符串放入剪贴板

下面是如何将字符串放入剪贴板的方法:

 
@implementation NSString (PasteboardGoodies)
 
- (void) sendToPasteboard
{
            [[NSPasteboard generalPasteboard]
             declareTypes: [NSArray arrayWithObject: NSStringPboardType]
             owner:nil];
            [[NSPasteboard generalPasteboard]
             setString: self
             forType: NSStringPboardType];
} // sendToPasteboard
 
@end // PasteboardGoodies
 

将时间格式显示为更易读

通常来说,我们将日期转化为字符串的方法是使用NSDateFormatter,有时候你希望更简单地处理时间,将其转为字符串,比如你希望得到:”December 4, 2007“ 可以用:

 
[[NSDate date] descriptionWithCalendarFormat: @"%B %e, %Y" timeZone: nil locale: nil]
 
修改参数你也可以得到诸如”2007124这种显示格式。
 

如何用Cocoa进行字符串查找

代码如下:

NSRange range = [[string name] rangeOfString: otherString options: NSCaseInsensitiveSearch];

如何让Cocoa程序支持多语言本地化处理

大部分情况下,在屏幕上显示除了英文之外的特定语言,通过

[statusItem setTitle:@“停止"];

进行显示,并不是一个好办法,因为你可能希望进行更多其他语言的支持。至少OS X中内建了多语言支持,而且用程序支持这种机制也并不复杂。仔细阅读本文,你会掌握如何用Cocoa实现多语言处理的技巧。

点击这里阅读全文 »

如何将包含数字的NSString字符串转换为整数

实现方法

NSString *string = …;
int value = [string intValue];
 
还可以通过floatValue或者doubleValue进行转换。

把字符串的文字内容转换为矢量路径图形

如果你希望将某一段文本转化为NSBezierPath路径,然后进行放大或者用特殊方式进行描绘,如何实现呢?下面是方法。

点击这里阅读全文 »

将路径字符串转为FSRef

又是一篇数据类型转换的文章,将一个NSString *的路径名转为FSRef类型。

NSString *pathString = … oo/xx/ooxx …;
 
FSRef ref;
status = FSPathMakeRef ((const UInt8 *)[pathString fileSystemRepresentation],
                                          &ref, NULL);
 
if (status != noErr) {
         NSLog (@"错误:无法转换‘%@’",
                 pathString);
}

最新讨论