我是IOS新手,似乎不能让它工作,我的应用程序上有一个输入字段,每当用户按下return或相关按钮(searchGo)时,我都想隐藏键盘
以下是我的代码:
mainViewController.h
@interface kepnMainViewController : UIViewController <kepnFlipsideViewControllerDelegate, MKMapViewDelegate>
{
MKMapView *_mapView;
IBOutlet UITextField *searchBox;
IBOutlet UIBarButtonItem *searchGo;
IBOutlet UIBarButtonItem *searchNearby;
MKAnnotationView *annotationView;
}
@property (strong, nonatomic) MKMapView *_mapView;
@property (strong, nonatomic) MapAnnotation *annotation;
@property (strong, nonatomic) UIPopoverController *flipsidePopoverController;
@property (strong, nonatomic) MKAnnotationView *annotationView;
@property (strong, nonatomic) UIBarButtonItem *searchGo;
- (IBAction)showInfo:(id)sender;
- (IBAction)searchGo:(id)sender;
- (IBAction)showNearby:(id)sender;
- (IBAction)searchBoxReturn:(id)sender;
- (void) setPlaceMarker: (CLLocationCoordinate2D) coord :(NSString*) title :(NSString*) subtitle;
@end适当的.m代码段
-(IBAction)searchGo:(id)sender
{
NSLog(@"sender object %@",sender);
[sender resignFirstResponder];
NSLog(@"search button pressed and textbox = %@",searchBox.text);
}
-(IBAction)searchBoxReturn:(id)sender
{
NSLog(@"search box return ");
[sender resignFirstResponder];
}抱歉,如果这是一个愚蠢的问题,但我做错了什么?
发布于 2012-02-28 02:13:13
UIBarButtonItem不是UIView,因此绝对不是UIResponder。相反,它是不响应- (void)resignFirstResponder的NSObject的子类。
(解决方案:删除[sender resignFirstResponder];行)
发布于 2012-02-28 02:33:34
因此,如果您的视图是手动编程的,那么您可以在代码中添加以下检查:
if ( [sender isKindOf: [UIResponder class]] == YES && [(UIResponder*)sender canResignFirstResponder] == YES )
[sender resignFirstResponder];发布于 2012-02-28 02:21:44
如果你想隐藏按键上的按键,假设你的searchBox是当前的响应者,而不是你应该写的
[searchBox resignFirstResponder]; // This will close keyboardhttps://stackoverflow.com/questions/9469874
复制相似问题