我有一個搜索欄,它可以在用戶輸入時過濾聯繫人,但是我也需要直接訪問文本框,以防他們輸入的名字不在地址簿中。所以,我需要同時使用UISearchBarDelegate和UITextFieldDelegate。在iOS 7中,在UISearchBar中設置UITextField的委託似乎破壞了兩者。我怎樣才能讓兩位代表作出迴應?
在iOS 6中,這工作得很好。在iOS 7中,一旦找到搜索欄文本字段並設置其委託,就會中斷一切。鍵盤不再響應,似乎沒有文字等
這是代碼視圖出現時:
UITextField *searchBarTextField = nil;
for (UIView *searchBarSubview in [mySearchBar subviews]) {
if ([searchBarSubview isKindOfClass:[UITextField class] ]) {
// ios 6 and earlier
searchBarTextField = (UITextField *)searchBarSubview;
} else {
// for ios 7 what we need is nested inside another container
for (UIView *subSubView in [searchBarSubview subviews]) {
if ([subSubView isKindOfClass:[UITextField class] ]) {
searchBarTextField = (UITextField *)subSubView;
}
}
}
}
if (searchBarTextField) {
[searchBarTextField setReturnKeyType:UIReturnKeyNext];
// TODO: in ios 7, setting this breaks everything. search stops working, search keyboard no longer responds, nothing.
[searchBarTextField setDelegate:self];
}
我很茫然。任何人都知道如何讓這個工作在iOS 7中?謝謝。
同樣的問題..請回復,如果有人發現soltuion。 – iEngineer