您希望在2年前了解Cocoa / Core Foundation辅助功能的哪些功能?

问题描述 投票:13回答:7

我刚刚在NSGeometry.h中发现了NSRect辅助函数(即NSMidX,NSMaxX等......)

这些将使一些重复编码更容易。我知道NSMakeRect,NSMouseInRect,NSOffsetRect和许多其他人,但不知何故错过了有助于重新计算NSRect几何的函数。

objective-c cocoa
7个回答
16
投票

我发现NSStringFrom *()在记录CGRect,CGPoint等结构时很有用。

您可以在Apple的Foundation Functions Reference(Wayback Machine链接)上找到全面的概述。


5
投票

辅助功能,用左帽,填充和右帽绘制三部分图像。非常适合自定义按钮

void NSDrawThreePartImage(NSRect frame,
    NSImage *startCap,
    NSImage *centerFill,
    NSImage *endCap,
    BOOL vertical,
    NSCompositingOperation op,
    CGFloat alphaFraction,
    BOOL flipped
);

另请查找NSDrawNinePartImage


4
投票

这是我希望我在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。


4
投票

NSPathUtilities.h中的大部分内容。两年前我确实知道这件事,但是当我第一次发现它时,我希望两年前我能看到它。 :-)

在某些时候,我浪费了相当多的时间,因为我不知道NSCountedSet,并弄乱了我的字典替换。我知道有几个人做过同样的事情,因为他们完全不了解NSSet。另一个好的“隐藏”集合是CFBinaryHeap,它实现了一个优先级队列,但是没有NS等价物。


3
投票

我记得一个

+ (NSBezierPath *)bezierPathWithRoundedRect:(NSRect)rect xRadius:(CGFloat)xRadius yRadius:(CGFloat)yRadius

弄清楚如何手动绘制圆角矩形是一个非常好的练习。还有其他我现在已经习惯了。


3
投票

用图案图像创建颜色

[UIColor colorWithPatternImage:[UIImage imageNamed:@"mypattern.png"]];

-1
投票

这是一个快捷方式,而不是我错过的库调用,但它符合线程的精神。

我使用的一个快捷方式是在NSLog调用中使用内联格式语句。


NSLog(@"x=%@", [someobject className]);

而不是更冗长


NSLog([NSString stringWithFormat:@"x=%@", [someobject classname]]);
© www.soinside.com 2019 - 2024. All rights reserved.