#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 = зашифрованный текст;