iPhone SDK : 通过代码修改界面生成器制作的标签

Posted

技术标签:

【中文标题】iPhone SDK : 通过代码修改界面生成器制作的标签【英文标题】:IPhone SDK : Modifying a label made with the interface builder by code 【发布时间】:2012-01-25 15:41:34 【问题描述】:

我有一个完整的 iPhone 项目。 我需要本地化它。第一次在 Mac 上,第一次使用 XCode 和 Objective C。我几乎迷路了。无论如何,我正在尝试更改标签的值(我的第一个任务)。

当我进入“界面生成器”时,我有一个 .xib 文件。我点击它,我看到带有一些“对象”(图像、标签等)的界面。然后我可以点击一个标签...如何更改文本值?我查看了相应的 .m 和 .h 文件,任何地方都没有 UILabel...

(我使用 xcode 4.2)

更新: 我可以通过双击 Interface Builder 中的对象来更改文本。现在我需要更改代码中的文本。

更新 2 我能够使用 Jeroen 的解决方案做到这一点。

以下是一些精度:

您需要添加 IBoutlet UILabel *myLabel; @interface 括号内的部分 YourViewController 部分

@property 在 .h 文件中变得松散

@synthesize 部分在 .m 文件中“松散”

[myLable 版本];部分进入 .m 文件的方法 (void)dealloc

要更改代码中的文本,我添加了以下代码:

self.myLabel.text = [NSString stringWithFormat:@"Test..."];

在 .m 文件的“viewDidLoad”方法中。

然后进行拖放:

    在“对象”框内找到标签(在界面生成器中) 右击Label,应该会有一个黑色的小弹窗 在弹出窗口内“新参考插座”行的右侧,有一个小圆圈。这就是你可以拖放的东西。将其拖放到“占位符”框中的“文件所有者”项上。

【问题讨论】:

【参考方案1】:

如果您想更改 UILabel 的文本,您必须手动将其添加到 .h 和 .m 文件中,然后通过界面生成器进行耦合。

要耦合它,您应该在 .h 文件中添加一个 IBoutlet:例如 IBOutlet UILabel *myLabel;

并从中创建一个属性@property (nonatomic, retain) IBOutlet UILabel *myLabel;

在 .m 文件中,您应该合成并解除分配。

例如。 @synthesize myLabel;

[myLabel release]; 

之后,您将能够通过右键单击将 UILabel 从 xib 连接到源文件并将“新引用出口”连接到“文件所有者”中的正确标签

但是,ios 上的翻译不应该这样。他们在这里很好地描述了它。 http://developer.apple.com/internationalization/

简而言之,Apple 建议为每种语言制作一个 xib。您可以通过右键单击它然后单击“使文件可本地化”来使 xib 可本地化。完成后,您可以单击一个名为“添加本地化”的按钮来添加新语言。

请确保您的应用非常稳定,因为快速更新不同的语言会变得很烦人。

【讨论】:

我看到有一些本地化应用程序的“解决方案”。一开始我只是给自己分配一些简单的任务;)无论如何,您如何“手动添加”以及如何通过界面构建​​器“耦合”?【参考方案2】:

在 xcode 4.2 中,界面生成器确实可以帮助您。您需要做的是设置 Xcode,以便您可以看到故事板和控制器。

按住 ctrl 键的同时,单击标签并拖动。应该出现一条线。将此行拖到您的视图控制器 .h 编辑器并放开。应该会出现一个弹出窗口,询问您的名字。随心所欲地调用它,例如 uiLabel。

现在回到您的视图控制器 .m 文件。如果那里没有名为 viewDidLoad 的方法,则创建一个:

-(void)viewDidLoad

    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    self.uiLabel.text = @"hello world!";

每当您的视图即将出现在屏幕上时,都会调用此方法。要将文本添加到您的标签,请实现如上所示的代码。

尝试here 看看它是如何完成的。转到“直接在 IB 对象和您的代码文件之间建立连接”

希望对你有帮助

【讨论】:

我可以用线拖动它,但我没有看到任何弹出窗口 :( 也许应用程序没有正确完成? 链接添加到苹果指南 - 希望有帮助 我的 Windows 没有像文档中那样排列,我没有在界面生成器的同时看到代码......我正在努力解决这个问题。 Xcode 右上角的按钮(编辑器和视图)可以与中间的编辑器按钮(助理编辑器)一起玩 - 可以让您一次看到两个文件

以上是关于iPhone SDK : 通过代码修改界面生成器制作的标签的主要内容,如果未能解决你的问题,请参考以下文章

iPhone - 带有界面生成器的 UIScrollView

设置自定义 uibuton 看起来像没有图像的 iPhone UI

如何使用 iphone sdk 编辑/修改通讯录的联系人?

在iPhone SDK上显示电子邮件生成器

*修改* UIbutton 位置(Iphone SDK)

在界面生成器中发出声音的按钮?