假设我有以下代码:
IBOutlet UITextField* nameTextField;
IBOutlet UILabel* greetingLabel;
Run Code Online (Sandbox Code Playgroud)
greetingLabel一旦用户按任意键,我想要读取"Hello [nameTextField]".
我需要的基本上是iPhone相当于Cocoa委托方法controlTextDidChange.
的textField:shouldChangeCharactersInRange:委托方法被称为每个键击发生时:
- (BOOL) textField:(UITextField *)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string
Run Code Online (Sandbox Code Playgroud)
字符串参数返回按下的字符.然而,实际textField的值(nameTextField.text)仍为空白.
我在这里错过了什么?(我想nameTextField反映用户到目前为止输入的确切字符串).
我有一个UITextField,它将包含高度值.我想在用户输入UITextField时格式化字段的值.例如,如果我想输入值为"5英尺10",则流程将为:
1. Enter 5
2. " ft " is appended immediately after I type 5 with leading & trailing space.
Run Code Online (Sandbox Code Playgroud)
我的代码看起来像这样:
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if ( [string isEqualToString:@""] ) return YES;
// currHeight Formatting
if ( textField == currHeight ) {
if (currHeight.text.length == 1) {
currHeight.text = [NSString stringWithFormat:@"%@ ft ", currHeight.text];
}
}
return YES;
}
Run Code Online (Sandbox Code Playgroud)
我被困在我输入的地步5没有任何反应.我必须点击任何按钮才能追加"ft".
我可以不点击任何东西吗?