在 UISearchBar 上,有一个 X 元素,可让您一次清除所有内容。发生这种情况时有办法收到通知吗?
UISearchBarDelegate::searchBarCancelButtonClicked
仅当点击“取消”按钮时才会触发。
The UISearchBar
没有此事件的委托方法。通过实施您几乎可以得到您想要的textDidChange:
回调委托的方法并检查空字符串。
我不推荐它,但还有另一种可能的方法。这UISearchBar
由 UITextField 组成,它有一个委托方法,当用户点击清除按钮时调用该方法(textFieldShouldClear:
)。您可以获得UITextField
通过遍历UISearchBar
的孩子意见:
(这是在派生的背景下UISearchBar
class)
- (UIView*) textField
{
for (UIView* v in self.subviews)
{
if ( [v isKindOfClass: [UITextField class]] )
return v;
}
return nil;
}
从这里开始,你could重新分配UITextField
委托给您自己的实现,注意将委托调用转发给旧委托。这样你就可以拦截textFieldShouldClear:
。或者如果事实证明UISearchBar
是代表UITextField
它包含您可以混合对 textFieldShouldClear:... 的调用,显然不理想,但技术上可行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)