我刚刚在NSGeometry.h中发现了NSRect辅助函数(即NSMidX,NSMaxX等......)
这些将使一些重复编码更容易。我知道NSMakeRect,NSMouseInRect,NSOffsetRect和许多其他人,但不知何故错过了有助于重新计算NSRect几何的函数。
我发现NSStringFrom *()在记录CGRect,CGPoint等结构时很有用。
您可以在Apple的Foundation Functions Reference(Wayback Machine链接)上找到全面的概述。
辅助功能,用左帽,填充和右帽绘制三部分图像。非常适合自定义按钮
void NSDrawThreePartImage(NSRect frame,
NSImage *startCap,
NSImage *centerFill,
NSImage *endCap,
BOOL vertical,
NSCompositingOperation op,
CGFloat alphaFraction,
BOOL flipped
);
另请查找NSDrawNinePartImage
这是我希望我在6个月前知道的。我正在创建我们的第一个iPhone应用程序,我想使用UIWebView Controller创建一个基于HTML的简单帮助文件。
但是我无法弄清楚如何嵌入我存储在Bundle中的本地图像,我不希望用户必须具有Internet访问权限才能从服务器获取图像。
我很少知道我可以做以下操作从主捆绑中获取图像
NSString *bundlePath = [[NSBundle mainBundle] bundlePath];
NSURL *bundleBaseURL = [NSURL fileURLWithPath: bundlePath];
[webView loadHTMLString:htmlContent baseURL: bundleBaseURL];
然后,HTML中的图像可以直接调用本地图像。
<img src="yourImageFromTheMainBundle.jpg" />
我不知道我可以用Bundle的位置设置baseURL。
NSPathUtilities.h中的大部分内容。两年前我确实知道这件事,但是当我第一次发现它时,我希望两年前我能看到它。 :-)
在某些时候,我浪费了相当多的时间,因为我不知道NSCountedSet,并弄乱了我的字典替换。我知道有几个人做过同样的事情,因为他们完全不了解NSSet。另一个好的“隐藏”集合是CFBinaryHeap,它实现了一个优先级队列,但是没有NS等价物。
我记得一个
+ (NSBezierPath *)bezierPathWithRoundedRect:(NSRect)rect xRadius:(CGFloat)xRadius yRadius:(CGFloat)yRadius
弄清楚如何手动绘制圆角矩形是一个非常好的练习。还有其他我现在已经习惯了。
用图案图像创建颜色
[UIColor colorWithPatternImage:[UIImage imageNamed:@"mypattern.png"]];
这是一个快捷方式,而不是我错过的库调用,但它符合线程的精神。
我使用的一个快捷方式是在NSLog调用中使用内联格式语句。
NSLog(@"x=%@", [someobject className]);
而不是更冗长
NSLog([NSString stringWithFormat:@"x=%@", [someobject classname]]);