2012-03-09 3 views
0

Это мой код:Почему текстовые поля не реагируют на скрытие клавиатуры?

- (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

ответ

0

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

+0

Спасибо, что так много работает сейчас как чемпион! Я ценю вашу помощь ...: D – SpokaneDude

0

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

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

Это скроет клавиатуру, когда вы нажмете кнопку возврата/выхода на клавиатуре.

Смежные вопросы