Когда устанавливается свойство текста UITextField? - PullRequest
0 голосов
/ 20 июля 2011

У меня была интересная проблема.У меня есть и UIButton, и UITextField, давайте назовем их myButton и myField соответственно.Теперь, когда пользователь нажимает myButton, предполагается сохранить содержимое [myField text] в другой переменной, которую мы назовем otherVar.Теперь, когда я набираю myField и нажимаю клавишу возврата, все работает нормально, однако когда я нажимаю myButton до того, как myField осталось, строка, которая сохраняется в otherVar, всегда выглядит примерно так:

<UIButtonContent: 0x4e13c60 Title = (null), Image = <UIImage: 0x4b50980>, Background = (null), TitleColor = UIDeviceWhiteColorSpace 1 1, ShadowColor = UIDeviceWhiteColorSpace 0 0.5>

Не устанавливается ли [текст myField], пока пользователь не нажмет клавишу возврата, покидая текстовое поле?А также, есть ли способ узнать, покинул ли пользователь myField перед нажатием myButton?

Вот код IBAction для myButton:

-(IBAction)myButton:(id)sender{
    if (![[myField text] isEqualToString:@""]) {
    [[[appDelegate moduleList] objectAtIndex:[appDelegate moduleNum]] setOtherVar:[myField text]];
     }
}

спасибо!

Ответы [ 2 ]

2 голосов
/ 20 июля 2011

Попробуйте добавить [myField resignFirstResponder]; перед оператором if в методе IBAction. Это должно зафиксировать любое из сделанных текстовых правок и заполнить свойство text.

0 голосов
/ 20 июля 2011

Вы можете использовать уведомления, чтобы точно знать, когда UITextField изменил свое значение, обсуждаемое в документации здесь .

Подробнее об уведомлениях здесь .

Существуют также методы делегирования для UITextFields, которые сообщают, когда редактирование начинается и заканчивается, среди прочего - документы здесь .

...