我有UILabel *lblTest
。并且我在Interface Builder
中将文本设置为“test”标签。如何找到在Interface Builder中设置的UILabel文本?
现在我通过代码设置lblTest文本为“新测试”。
所以,现在我想再次获得我已经在Interface Builder
中设置的“测试”文本。
有没有办法巧妙地做到这一点?
注意:我不想做数行代码.... 期待单线解决方案。
在此先感谢。
我有UILabel *lblTest
。并且我在Interface Builder
中将文本设置为“test”标签。如何找到在Interface Builder中设置的UILabel文本?
现在我通过代码设置lblTest文本为“新测试”。
所以,现在我想再次获得我已经在Interface Builder
中设置的“测试”文本。
有没有办法巧妙地做到这一点?
注意:我不想做数行代码.... 期待单线解决方案。
在此先感谢。
你要明白,在你Interface Builder中值将由代码代码重写你自己写。
所以,一旦你的代码已经改变了标签,你能恢复的Interface Builder的的值,如:
NSString* lblTestString = lblTestString.text;
//now set your value from the code
[lblTest setText:@"new Test"];
//and revert it to what was already in the interface builder
[lblTest setText:lblTestString];
不过它没有真正任何意义..
我已经考虑过最后一种做法。但我期待单线解决方案。 –
我想你想要的东西就像“撤消”功能。 没有特殊的方式来完成你描述的事情。 一件事你可以做的是:
存放在一个NSString变量中的第一个字符串设置标签文本为“新测试”
NSString *oldString = lblTest.text;
变化从代码的文本之前。
self.lblTest.text = @"new test";
如果需要,请将其更改回旧字符串。
self.lblTest.text = oldString;
如果设置在您的viewdidload中通过代码标记文本“新文本”,然后它将始终显示“新文本”,除非您将标签文本标为“测试”或注释您的行 –
您用“新测试”覆盖“测试”,并希望找到它以前设置的“测试”?你需要返回多少次迭代?你可以使用.placeholder作为初始字符串吗? – Bejmax
@:Bejmax我期待着这样的代码“[NSString stringWithFormat:@”%@“,(NSString *)[[NSBundle mainBundle] objectForInfoDictionaryKey:@”CFBundleVersion“]]” –