Jus*_*zic 9 iphone uisearchbar uisearchbardelegate
在UISearchBar上,有一个X元素允许您一次清除所有内容.有没有办法在发生这种情况时收到通知?
UISearchBarDelegate::searchBarCancelButtonClicked 仅在点击"取消"按钮时触发.
在UISearchBar没有该事件的委托方法.通过实现textDidChange:回调委托的方法并检查空字符串,您几乎可以获得所需的内容.
我不推荐它,但还有另一种可能的方法.在UISearchBar由的UITextField,这确实有一个委托方法当用户敲击清除按钮被称为(的textFieldShouldClear:).您可以UITextField通过遍历UISearchBar子视图来获取:
(这是在派生UISearchBar类的上下文中)
- (UIView*) textField
{
for (UIView* v in self.subviews)
{
if ( [v isKindOfClass: [UITextField class]] )
return v;
}
return nil;
}
Run Code Online (Sandbox Code Playgroud)
从这里开始,您可以将UITextField委托重新分配给您自己的实现,注意将委托调用转发给旧委托.这样你就可以拦截textFieldShouldClear:.或者如果事实证明它是包含它UISearchBar的代表UITextField你可以调用textFieldShouldClear:...不理想,显然,但技术上可行.
| 归档时间: |
|
| 查看次数: |
17103 次 |
| 最近记录: |