UITextField - resignFirstResponder 查询
Posted
技术标签:
【中文标题】UITextField - resignFirstResponder 查询【英文标题】:UITextField - resignFirstResponder Query 【发布时间】:2011-08-02 08:53:09 【问题描述】:我有一个应用程序,其中有几个 UITextField 允许我的用户输入他们的年龄和另一个数值。理想情况下,我希望键盘在编辑 TextField 时调出数字小键盘。目前我将其设置为数字和标点符号只是为了使用“完成”按钮来关闭键盘,因为数字键盘没有完成按钮。
在尝试使用数字键盘时,我尝试通过点击主视图的背景将其设置为关闭。
-(IBAction)backgroundTapped:(id)sender;
我在头文件中创建了上述操作。
-(IBAction)backgroundTapped:(id)sender
[ageEntry resignFirstResponder];
我在我的实现文件中扩展了上述方法,告诉ageEntry TextField resignFirstResponder。我还将主视图更改为 UIControl 类,并通过 Interface Builder 将 buttonTapped 操作连接到相关警报。然而,当我触摸背景时,什么也没有发生。
有什么想法吗?
【问题讨论】:
您想在数字键盘中添加完成按钮吗? 理想情况下,id 就像数字键盘中的完成按钮一样,但这不在选项中。我希望能够点击我的背景来关闭键盘 【参考方案1】:只需使用该方法检测 viewController 视图中的触摸
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
[urAgeField resignFirstResponder];
[urOtherField resignFirstResponder];
并在此方法中退出键盘
【讨论】:
这看起来是一个更好的解决方案 +1。【参考方案2】:一个更简单的方法是将inputAccessoryView
添加到您的文本字段。此输入附件视图可以是 UIToolbar
,您的 Done 按钮只有一个 UITabBarButton
。
少了很多hack,看起来就像在Safari中用来关闭键盘的附件视图。
【讨论】:
【参考方案3】:我遇到了类似的问题。这里是the solution..
已编辑
添加
- (void)viewDidLoad
[super viewDidLoad];
UITapGestureRecognizer* tap = [[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(tap:)];
tap.numberOfTapsRequired = 1;
[self addGestureRecognizer:tap];
- (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
[ageEntry resignFirstResponder];
【讨论】:
感谢您的回复。但这本身并不是问题的解决方案,这是一个非常耗时的 hack。 你需要 IBOutlet UITextFiled *ageEntry;以上是关于UITextField - resignFirstResponder 查询的主要内容,如果未能解决你的问题,请参考以下文章
在 UITextField 操作中将 UITextField 字符串转换为 Double
如何调整 UITextField 占位符文本以适合 UITextField 宽度?