这是我的代码:
- (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 :(得分:0)
您是否可以为txtSiteDesc
设置委托,但不能为其他两个文本字段设置委托?这可以解释为什么为您的第一个文本字段而不是其他字段调用textFieldShouldReturn:
。确保将所有三个文本字段的delegate
属性设置为self
(其中self =您的视图控制器)。
答案 1 :(得分:0)
即使我遇到了这个问题。这就是你要找的东西:
- (BOOL)textField:(UITextField *)theTextField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if([string hasSuffix:@"\n"])
{
[theTextField resignFirstResponder];
return NO;
}
return YES;
}
当您按下键盘上的return / done等时,这将隐藏键盘。