2014-01-29 39 views

回答

0

假設你希望它僅適用於iOS 7,試試這個:

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

當你有一個屬性的搜索欄,你不需要任何的參數傳遞給方法,所以上面的代碼應該做的工作。如果你想清除按鈕永遠不會發生使用UITextFieldViewModeNever選項,而不是UITextFieldViewModeWhileEditing

+0

感謝,感謝幫助 – user3249524

+1

無證的API通常創建問題的道路。 –

+0

哪部分是無證的? –

0

試試這個代碼,它適用於iOS7太:

//First add the following macro: 
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending) 

//Then access your search bar text field: 
- (void)configureSearchBarView 
{ 
    if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) 
    { 
     for (id object in [[[self.searchBar subviews] objectAtIndex:0] subviews]) 
     { 
      if ([object isKindOfClass:[UITextField class]]) 
      { 
       [((UITextField *)object) setClearButtonMode:UITextFieldViewModeWhileEditing]; 
       break; 
      } 
     } 
    } 
    else 
    { 
     for (id object in [self.searchBar subviews]) 
     { 
      if ([object isKindOfClass:[UITextField class]]) 
      { 
       [((UITextField *)object) setClearButtonMode:UITextFieldViewModeWhileEditing]; 
       break; 
      } 
     } 
    } 
} 
+0

好吧,我添加了這段代碼,並將其添加到viewDidLoad'[self configureSearchBarView];'中,並且它並不可悲。 – user3249524

+0

我應該從文件所有者還是視圖控制器添加插座? – user3249524

+0

是的,確保插座連接正確。 –

相關問題