Почему текстовые поля не реагируют на скрытие клавиатуры? - PullRequest
0 голосов
/ 10 марта 2012

Это мой код:

- (BOOL) textFieldShouldReturn:(UITextField *)textField  {
    [txtSiteDesc resignFirstResponder];
    [txtDesc resignFirstResponder];
    [ssFS resignFirstResponder];

    return YES;

}

Это файл .h:

#import <UIKit/UIKit.h>

@interface slEnterDataViewController : UITableViewController <UITextFieldDelegate>  {

    UITextField *txtSiteDesc;
    UITextField *txtDesc;
    UITextField *ssFS;
}

@property (nonatomic, retain) IBOutlet UITextField *txtSiteDesc;
@property (nonatomic, retain) IBOutlet UITextField *txtDesc;
@property (nonatomic, retain) IBOutlet UITextField *ssFS;

@end

Работает для txtSiteDesc, но не для всех остальных. Я предполагаю, что проблема в методе textFieldShouldReturn; Я думал, что смогу проверить значение textField, чтобы увидеть, какое это поле, а затем выполнить соответствующий resignFirstResponder и вернуться Я близок (я думаю), но недостаточно близко.

Помощь будет принята с благодарностью. : D

Ответы [ 2 ]

0 голосов
/ 31 мая 2013

Даже я сталкивался с этой проблемой.Это то, что вы ищете:

- (BOOL)textField:(UITextField *)theTextField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    if([string hasSuffix:@"\n"])
    {
        [theTextField resignFirstResponder];
        return NO;
    }
    return YES;
}

Это будет скрывать клавиатуру, когда вы нажимаете на клавиатуре клавишу возврата / готово и т. Д.

0 голосов
/ 10 марта 2012

Возможно ли, что вы установили делегата для txtSiteDesc, но не для двух других ваших текстовых полей?Это объясняет, почему textFieldShouldReturn: вызывается для вашего первого текстового поля, а не для других.Убедитесь, что вы установили свойство delegate всех трех текстовых полей на self (где self = ваш контроллер представления).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...