Пользовательский метод setText работает только один раз на UILabel - PullRequest
0 голосов
/ 02 мая 2019

Я работаю над проектом, который включает внесение изменений в UILabel.

Это идея:

У UILabel есть стандартный текст, введенный пользователем + UITextField под текстом.

При длительном нажатии UILabel, он покажет описание этого конкретного UILabel и скрывает UITextField. При повторном длительном нажатии снова должен отображаться стандартный текст и показываться UITextField.

Первая часть работает: при долгом нажатии вместо стандартного текста будет отображаться описание, а UITextField будет скрыто. NSLog также являются правильными.

Однако, когда я продолжаю долго нажимать: текст описания остается, но UITextField появится снова (потому что я так сказал в своем коде).

Однако NSLog сообщают мне, что ДЕЙСТВИТЕЛЬНО менялись (я регистрирую 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...