Установка значения UITextField в IBAction

#iphone #cocoa-touch #interface-builder #xcode4

#iPhone #cocoa-touch #конструктор интерфейса #xcode4

Вопрос:

Я пытаюсь использовать UITextField в качестве выходных данных для простого шифрования. Поле начинается со строки nil (ее поведение по умолчанию), и я пытаюсь обновить его в encryptButtonPressed: действии. Я знаю, что получаю хорошую NSString в зашифрованный текст, и я не получаю никаких ошибок или предупреждений или чего-либо, что метод не существует, но поле остается пустым. Есть идеи?

Вот заголовок:

 @interface FirstViewController : UIViewController <UITextFieldDelegate> {


    IBOutlet UITextField *affineKeyField;
    IBOutlet UITextField *shiftKeyField;

    IBOutlet UITextField *messageField;
    IBOutlet UITextField *ciphertextField;

    MAAffineMachine* machine;
}

@property (nonatomic, retain) UITextField *affineKeyField;
@property (nonatomic, retain) UITextField *shiftKeyField;

@property (nonatomic, retain) UITextField *messageField;
@property (nonatomic, retain) UITextField *ciphertextField;


@property (nonatomic, retain) UIButton *encryptButton;
@property (nonatomic, retain) UIButton *clipboardButton;

- (IBAction)encryptButtonPressed:(id)sender;
- (IBAction)clipboardButtonPressed:(id)sender;

@end
  

И действие, определенное в реализации контроллера:

 - (IBAction)encryptButtonPressed:(id)sender {
    NSLog(@"Encrypt Button pushed.n");
    int affine = [[affineKeyField text] intValue];
    int shift = [[shiftKeyField text] intValue];
    NSString* message = [messageField text];
    NSLog(@"%d, %d, %@", affine, shift, message);
    NSString* ciphertext = [machine encryptedStringFromString:message
                                                    ForAffine:affine
                                                        Shift:shift];
    NSLog(@"%@n", ciphertext);
    [[self ciphertextField] setText: ciphertext];
}
  

Ответ №1:

Если ciphertext имеет правильное значение, вам следует проверить, что ciphertextField оно правильно связано в построителе интерфейса.

Комментарии:

1. На самом деле в этом и заключалась проблема; я изменил название этой торговой точки из-за опечатки и не уловил, что ссылка не обновлялась правильно. Спасибо. Я только начал привыкать к IB XCode 3, когда они интегрировали все в XCode 4, поэтому мне не хватает некоторых простых вещей.

Ответ №2:

Попробуйте [[self ciphertextField] setText: зашифрованный текст] -> [ciphertextField setText: зашифрованный текст] или cipherTextField.text = зашифрованный текст;