我正在研究一个包含对UILabel
进行更改的项目。
这是想法:
UILabel
是用户输入的标准文本,并在其下方输入了UITextField
。
长按UILabel
时,将显示该特定UILabel
的描述并隐藏UITextField
。再次长按时,它将再次显示标准文本并显示UITextField
。
第一部分起作用:长按时,将显示说明而不是标准文本,并且UITextField
被隐藏。 NSLog
也是正确的。
但是,当我再次长按时:说明文字会保留,但是UITextField
将再次出现(因为我在代码中这样说)。
NSLog
告诉我DID更改(我正在记录UILabel.text)。
这是代码:
-(void)textfieldLongPressed:(UILongPressGestureRecognizer *)gesture {
if(gesture.state == UIGestureRecognizerStateEnded) {
// getting the correct switch (UILabel)
TextFieldSwitch *correctSwitch = (TextFieldSwitch *)[gesture view];
// getting the switch text using a own generated method that returns the correct UILabel.text
NSString *switchText = [correctSwitch getTextfieldSwitchText];
// if the switch text is equal to the description, it should show the standard text again & show the UITextField
if([switchText isEqual: [correctSwitch getDescription]]) {
[correctSwitch setTextfieldSwitchText:[correctSwitch getName]];
[correctSwitch showTextField];
} else {
[correctSwitch setTextfieldSwitchText:[correctSwitch getDescription]];
[correctSwitch hideTextField];
}
// log the standard name of the switch.
NSLog(@"Name: %@", [correctSwitch getName]);
//log the UILabel.text
NSLog(@"TxtfieldLabel text: %@", [correctSwitch getTextfieldSwitchText]);
}
}
如果有人可以帮助我,我将不胜感激!
先谢谢您
编辑:
TextFieldSwitch类的代码:
-(void)setTextfieldSwitchText:(NSString *)newText {
textfieldSwitch.text = newText;
}