Pla*_*mer 107 cocoa-touch objective-c uitextfield ios
假设我有以下代码:
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
反映用户到目前为止输入的确切字符串).
Pla*_*mer 195
事实证明,最简单的方法是使用Interface Builder:
就像一个魅力:)(我不敢相信我花了很多天在这上面,现在意识到解决方案比我想象的要简单得多:P)
小智 101
您可以在文本字段上注册事件UIControlEventEditingChanges的操作:
[nameTextField addTarget:self action:@selector(updateLabelUsingContentsOfTextField:) forControlEvents:UIControlEventEditingChanged];
Run Code Online (Sandbox Code Playgroud)
...
// TODO: error checking
- (void)updateLabelUsingContentsOfTextField:(id)sender {
greetingLabel.text = [NSString stringWithFormat:@"Hello %@", ((UITextField *)sender).text];
}
Run Code Online (Sandbox Code Playgroud)
los*_*sit 10
UITextField
UITextFieldTextDidChange
如果您注册文本,则每次文本更改时都会触发通知.只需注册该通知,并在通知调用的方法中更改标签的文本.
要添加到此,传递给通知处理程序的对象将具有文本UITextField
.
希望有所帮助.
归档时间: |
|
查看次数: |
66482 次 |
最近记录: |