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

4

2 回答 2

0

即使我遇到了这个问题。这就是你要找的:

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

当您按键盘上的返回/完成等时,这将隐藏键盘。

于 2013-05-30T20:49:21.507 回答
0

您是否有可能为其他两个文本字段设置了委托,txtSiteDesc但没有为其他两个文本字段设置委托?这可以解释为什么textFieldShouldReturn:需要为您的第一个文本字段而不是其他文本字段。确保将delegate所有三个文本字段的属性设置为self(其中 self = 您的视图控制器)。

于 2012-03-09T23:59:41.077 回答