【问题标题】:Setting Max length of string/.text设置字符串/.文本的最大长度
【发布时间】:2012-04-27 06:13:39
【问题描述】:

我现在使用按钮在栏中显示字母,这是我使用的代码

-(IBAction) clicked: (id)sender{
NSString *titleOfButton = [sender titleForState:UIControlStateNormal];
NSString *newLabelText = titleOfButton;
labelsText.text = [NSString stringWithFormat:@"%@%@", labelsText.text, newLabelText];

 //if ([newLabelText length] >= 5) newLabelText = [newLabelText substringToIndex:5];
 }

我遇到的问题是我希望它最多可以输入 5 个字母有没有人可以告诉我如何做到这一点?

谢谢

【问题讨论】:

  • 首先,在没有 release 的情况下调用 [[NSString alloc] init...] 时会发生内存泄漏。还有,...initWithFormat:@"%@", string]到底是什么意思?
  • 那是旧代码我只想知道如何获得最大长度,这样当我已经按下 5 时它就不会再显示字母了。
  • 使用 ARC 时,您的 alloc/init 非常好。不过initWithFormat:@"%@", titleOfButton没用,直接用titleOfButton就好了。
  • 谢谢你,我正试图把它弄出来,但不知道正确的方法,它总是给我错误
  • 只使用NSString *newLabelText = titleOfButton; 或者根本不创建新变量。

标签: ios xcode string


【解决方案1】:

添加这一行 -

if ([newLabelText length] >= 5) newLabelText = [newLabelText substringToIndex:5];

...或将相同的内容应用于您要截断的任何字符串。

查看 Apple Docs 了解一些非常有用的 NSString 内容

【讨论】:

  • 好的,谢谢大家的帮助,这是我的新代码 - (IBAction) clicked: (id)sender{ NSString *titleOfButton = [sender titleForState:UIControlStateNormal]; NSString *newLabelText = titleOfButton; labelsText.text = [NSString stringWithFormat:@"%@%@", labelsText.text, newLabelText]; if ([labelsText.text 长度] >= 5) labelsText.text = [labelsText.text substringToIndex:5]; }
  • 将您的行更改为:对于可能想要此的其他任何人:) if ([labelsText.text length] >= 5) labelsText.text = [labelsText.text substringToIndex:5];
  • labelsText.text = [NSString stringWithFormat:@"%@%@", labelsText.text, titleOfButton];留下第二个 NSString
猜你喜欢
  • 2012-11-11
  • 1970-01-01
  • 1970-01-01
  • 2010-09-30
  • 1970-01-01
  • 2021-12-27
  • 1970-01-01
  • 2021-09-18
相关资源
最近更新 更多