Iphone 键盘返回
我有一个视图名:myplay.h和myplay.m 我的视图包含一个文本字段名txtplay 它包含一个按钮名btnplay 在按钮事件中,我想检查键盘是否打开,然后关闭它 我知道下面的代码Iphone 键盘返回,iphone,objective-c,xcode,iphone-sdk-3.0,Iphone,Objective C,Xcode,Iphone Sdk 3.0,我有一个视图名:myplay.h和myplay.m 我的视图包含一个文本字段名txtplay 它包含一个按钮名btnplay 在按钮事件中,我想检查键盘是否打开,然后关闭它 我知道下面的代码 - (BOOL)textFieldShouldReturn:(UITextField *)textField { [textField resignFirstResponder]; return TRUE; } 在按钮点击事件中 -(IBAction)btnplayclick:(id)send
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return TRUE;
}
在按钮点击事件中
-(IBAction)btnplayclick:(id)sender
{
[self.txtplay resignFirstResponder];
....
....
}
我想要一个全局代码退出。我认为通用并在任何地方重用代码的最好方法是为UIView创建一个类别:
@implementation UIView (FindFirstResponder)
- (UIView *)findFirstResonder
{
if (self.isFirstResponder) {
return self;
}
for (UIView *subView in self.subviews) {
UIView *firstResponder = [subView findFirstResonder];
if (firstResponder != nil) {
return firstResponder;
}
}
return nil;
}
@end
然后调用这样的方法:
-(IBAction)btnplayclick:(id)sender
{
UIView *firstResponder = [self.view findFirstResonder];
[firstResponder resignFirstResponder];
}
它为我提供了完美的技巧。我认为,通用并在任何地方重用代码的最佳方法是为UIView创建一个类别:
@implementation UIView (FindFirstResponder)
- (UIView *)findFirstResonder
{
if (self.isFirstResponder) {
return self;
}
for (UIView *subView in self.subviews) {
UIView *firstResponder = [subView findFirstResonder];
if (firstResponder != nil) {
return firstResponder;
}
}
return nil;
}
@end
然后调用这样的方法:
-(IBAction)btnplayclick:(id)sender
{
UIView *firstResponder = [self.view findFirstResonder];
[firstResponder resignFirstResponder];
}
它为我完美地完成了这些技巧。或者只是写一篇文章
[self.view findAndResignFirstResponder];
或者只是写
[self.view findAndResignFirstResponder];
在不是第一响应者的UITextField上调用resignFirstResponder是无害的禁止操作 那就去吧:
for (UIView *candidate in self.subview) {
if ([candidate isKindOfClass:[UITextView class]]) {
[(UITextView *)candidate resignFirstResponder];
}
}
在不是第一响应者的UITextField上调用resignFirstResponder是无害的禁止操作 那就去吧:
for (UIView *candidate in self.subview) {
if ([candidate isKindOfClass:[UITextView class]]) {
[(UITextView *)candidate resignFirstResponder];
}
}
试试这个:
[self.view endEditing:YES];
从文档:
招标:
使视图(或其中一个嵌入的文本字段)退出第一响应程序状态
- (BOOL)endEditing:(BOOL)force
[self.view endEditing:YES];
从文档:
招标:
使视图(或其中一个嵌入的文本字段)退出第一响应程序状态
- (BOOL)endEditing:(BOOL)force
这一个应该做这项工作,有什么错吗?如果我有30个文本字段,我必须为每个写..这一个应该做这项工作,有什么错吗?如果我有30个文本字段,我必须为每个写。。