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