2010-11-17 117 views
0

我有这样一个问题:我在UITableViewCell中有一个UITextField。当我点击那个文本字段 - >出现键盘,但是当我按时输入按钮键盘不会消失。我需要为我的文本字段和键盘这样的行为:UITextField键盘问题

  1. 当我按下回车Esc键 - 键盘必须消失。

回答

2
- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
    [textField resignFirstResponder]; 
    return YES; 
} 

如果文本框是UITextField,用于定义UITableViewCell

有在真实的设备没有这样的关键反正
+0

它不工作(莫比东西更 – yozhik 2010-11-17 11:54:14

+0

@yozhik,你有没有委托设为您的文本字段?检查,如果该方法实际上被称为 – Vladimir 2010-11-17 13:18:28

+0

等一秒钟,我会写什么是错的 – yozhik 2010-11-17 13:28:05

1

执行textFieldShouldReturn:方法在textField的委托中,并调用[textField resignFirstResponder]那里 - 当按下回车键时将隐藏键盘。

我不知道是否会为“Esc”键以及工作,但因此它不能是一个问题

2

试试这个


[txtField setReturnKeyType:UIReturnKeyDone]; 

txtField.enablesReturnKeyAutomatically=YES;
0
@interface Untitled2ViewController : UIViewController <UITextFieldDelegate> 
{ 
    IBOutlet UITextField *text; 
} 

@property (nonatomic, retain) IBOutlet UITextField *text; 
@end 

// M档

#import "Untitled2ViewController.h" 

@implementation Untitled2ViewController 
@synthesize text; 

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
    [textField resignFirstResponder]; 
    return YES; 
} 

在我设置的xib文件中:返回键:完成,自动启用返回键。我也试过没有它,但仍然没有反应。键盘不隐藏。

+0

你应该编辑你的问题,并在那里放置细节 - 答案不是一个正确的地方,它太容易错过你的文章。你设置你的c ontroller成为文本的委托(在IB或代码中)并且textFieldShouldReturn被调用(在那里放置断点或日志消息来检查...)? – Vladimir 2010-11-17 14:22:38

1

这可能是一个旧帖子,但我发现它寻找答案,所以有可能别人可能不会因为发帖而射我。

只想添加 不要忘记将给出UITextField

0

写在IB代理连接这个代码来创建UITextLabel

UITextField *username = [[UITextField alloc]initWithFrame:CGRectMake(10.0f, 10.0f, 110.0f, 30.0f)] 
    [username setReturnKeyType:UIReturnKeyNext]; 
    [username setDelegate:self]; 
    [self.view addSubview:username]; 

现在辞职编写代码。

-(void)resignKeyboard 
{ 
    if([username isEditing]) 
    { 
     [username resignFirstResponder]; 
    } 
} 

我希望它适合你。

0

试试这个

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
    [textField resignFirstResponder]; 
    return YES; 
} 

或者这是在任何地方查看

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
    [self.view endEditing:YES]; 
}