2010-10-18 125 views
4

“DONE”键盘按键我有问题,可能是相同的这样guyiphone模拟器和的UITextField

当点击文本框,输入数据后,“完成”按钮不起作用?它是iPhone模拟器的问题?请告诉我如何使用界面生成器“完成”按钮的工作

解决方案:

谷歌搜索50分钟后,我终于明白了我的问题。而现在用简单的英语进行愚蠢的人跟我一样:

我使用myAppDelegate文件现在是例如..所以这应该给你一个想法做什么:

#import <UIKit/UIKit.h> 

@class imgurViewController; 

@interface imgurAppDelegate : NSObject { 
    UIWindow *window; 
    imgurViewController *viewController; 

//login window 
UIButton *loginButton; 
UITextField *loginField; 
UITextField *passwordField; 

} 

@property (nonatomic, retain) IBOutlet UIWindow *window; 
@property (nonatomic, retain) IBOutlet imgurViewController *viewController; 

//login window 
@property (nonatomic, retain) IBOutlet UIButton *loginButton; 
@property (nonatomic, retain) IBOutlet UITextField *loginField; 
@property (nonatomic, retain) IBOutlet UITextField *passwordField; 

- (IBAction)doLoginButton; 


@end 

的地方给你的myAppDelegate .M

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

使textFieldShouldReturn工作,你需要右键点击您的IB文本字段,然后在“奥特莱斯”拖“代理”到控制器,你放置在textFieldShouldReturn方法!在这种情况下,将'委托'拖到myAppDelegate图标上。

回答

4

使用适当的委托方法。具体而言,实施方法UITextFieldDelegate

- (BOOL)textFieldShouldReturn:(UITextField *)textField 

另外,不要忘记要连接的控制器作为代表。以编程方式或通过在Interface Builder中连接它。

+0

你能更具体吗?将UITextField拖放到IB中的任何视图中,并启动应用程序,done按钮必须隐藏键盘。 loginField已经被拖动到appDelegate并且loginField.text已经工作了。 – holms 2010-10-18 17:44:16

+1

是的,我知道,但是完成按钮在默认情况下不会隐藏键盘。你必须实现这个方法: - (BOOL)textFieldShouldReturn:(UITextField *)textField 否则什么都不会发生。查看文档以获取详细信息。 – tadejsv 2010-10-18 17:57:30

+0

终于有人告诉我用简单的英语怎么了谢谢男人,我会尝试=) – holms 2010-10-19 00:37:32