在目标C中,我有一个类别中的一类:

@interface UILabel(CustomInit)

- (id)initWithCoder:(NSCoder *)coder;

@end

什么我做的是写一个自定义的初始功能,做一些额外的东西,我想要做的,就是在这个定义的初始功能,调用UILabel的基initWithCoder.这可能吗?怎么会这样?

编辑

谢谢。Ok,因此我的计划没有实际意义。不能只是载initWithCoder.有没有一种方法来实现相同的功能(这里所有Uilabel获得此添加的初始步骤)没有超载initWithCoder?或者也许是有样品代码为UILabel的initWithCoder,我可以只是重写有所加入的代码?

编辑

好的所以是明确的关于什么的我想:

我可以嵌入一个自定义的字体在iPhone应用程序?

有一个答复,其中有人手动增加一个自定义的字体在iphone上使用私GraphicServices功能GSFontAddFromFile.我尝试过这种代码和它的工作大为手动设置的字体标签。然而,如果试图设置的字体在接口的建设者,它不负载正确的,它只是下降到系统的字体。什么我想要做的是装载的字体手动,并设置标签的字体自动与选字体在IB。这样我就不需要一个出口为每一标签我放下。我还没有写一荒谬的标签类(其中还建议在线程和做大量的定制的绘图)我发现反而怪诞.现在我仍然可以做一个子类对于我所有的标签,但后来没有的情况下嵌入的标签,在其他UI对象,即UIButtons.我想嵌入的标签也是不可打破。

任何建议将是巨大的。谢谢。

有帮助吗?

解决方案 2

你们如何看待这一点?

在运行时抢的initWithCoder原方法的地址,并将其存储在一个静态变量。做它的方法调酒,以取代与我的initWithCoder类实现。然后在我的initWithCoder,我会调用存储在静态变量的原始方法。

您可以把它放在一个类别,并呼吁在程序开始这个类初始化步骤,确保其不能被称为两次,或者如果它什么都不做。

这似乎危险的,但我觉得它应该工作。

其他提示

Mac OS X的参考图书馆:

当一个类别替代 继承 方法, 方法,该方法中的类别 可以像往常一样,援用该继承的 执行通过的消息。然而,如果一类别复盖 方法 已经存在的 类别的类, 有没有办法 援引的原始实施。

方法混写应该工作作为kidnamedlox建议。

您完全相同的问题是由埃文娃娃在此斯坦福的iTunes类讨论

https://podcasts.apple.com / US /播客/ iphone-应用编程弹簧-2009 / id384233222

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top