2013-04-10 52 views
0

如何辭職UITextFieldUISearchBar?我試着用下面的代碼UITextField從UISearchBar返回

UIView * subView; 
    NSArray * subViews = [self.searchBar subviews]; 
    for(subView in subViews) 
    { 
     if([subView isKindOfClass:[UITextField class]]) 
     { 
      ((UITextField*)subView).delegate=self; 
      ((UITextField*)subView).returnKeyType=UIReturnKeyDone; 
      break; 
     } 
    } 

    for (UIView *subview in self.searchBar.subviews) 
    { 
     if ([subview conformsToProtocol:@protocol(UITextInputTraits)]) 
     { 
      [(UITextField *)subview setClearButtonMode:UITextFieldViewModeWhileEditing]; 
     } 
    } 

,並添加了文本字段的委託方法

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 

    [textField resignFirstResponder]; 

    return YES; 
    } 

這個工作,但如果文本字段不爲空,這個奧菱辭職的鍵盤。如果文本框爲空,則它不辭職

回答

0

使用此:

像波紋管.h文件中
[searchBar resignFirstResponder]; 
+0

我使用這段代碼時,我選擇了我的tableview的任何一行到我的場景它工作我沒有任何問題與iPad,但只有iPhone我有這個。所有其他人也是正確的,但你是第一個回覆,因此接受你的感謝 – 2013-04-10 11:43:34

0

第一組代表......

@interface yourViewController : UIViewController<UISearchBarDelegate> 

,當你想辭職鍵盤UISearchBar簡單使用波紋線..

[searchBar resignFirstResponder]; 

UPD ATE:

-(BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar{ 
    [self.searchBar resignFirstResponder]; 
    return YES; 
} 
+0

我這樣做在-searchBarTextDidEndEditing,但它不會退出 – 2013-04-10 11:03:39

+0

而不是該方法使用此方法.. - (void)searchBarCancelButtonClicked:(UISearchBar *) tempsearchBar並在這裏辭職,並且首先檢查你是否給委託自己的searchBar? – 2013-04-10 11:05:37

+0

@LochanaRagupathy先看看在你的.h文件中添加UISearchBarDelegate,並在viewDidLoad方法中設置searchBar.delegate = self;然後嘗試辭職 – 2013-04-10 11:07:35

0

請做這一個...

-(void)searchBar:(UISearchBar *)theSearchBar textDidChange:(NSString *)searchText 
{ 
    if (searchBar.text.length == 0) 
     [searchBar resignFirstResponder]; 
} 

我希望這將正常工作。

相關問題