相关疑难解决方法(0)

我可以挂钩到UISearchBar的Clear Button吗?

我的界面中有一个UISearchBar,我想自定义输入一些文本后出现在搜索栏中的小清除按钮的行为(它是一个带有十字的小灰色圆圈,出现在右边搜索领域的一面).

基本上,我希望它不仅清除搜索栏的文本(这是默认的实现),而且还要清除我界面中的其他东西,但是调用我自己的方法之一.

我在UISearchBar类或UISearchBarDelegate协议的文档中找不到任何内容 - 看起来您不能直接访问此行为.

我注意到的一件事是文档解释了委托方法:

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText;
Run Code Online (Sandbox Code Playgroud)

点击清除按钮后调用.

我最初在该方法中编写了一些代码来检查搜索栏的文本属性,如果它是空的,那么它已被清除并执行我所有其他的东西.

这有两个问题:

首先,由于某些原因我无法理解,即使我在我的方法结束时告诉搜索栏resignFirstResponder,某些东西,某处正在将其设置回到firstFirstResponder.真烦人......

其次,如果用户没有使用清除按钮,并且只是使用键盘上的删除按钮删除栏中的文本,则此方法将被触发,其搜索结果将消失.不好.

任何正确方向的建议或指示都会很棒!

谢谢!

iphone objective-c uikit uisearchbar

37
推荐指数
4
解决办法
5万
查看次数

点击'X'元素时触发UISearchBar和事件

在UISearchBar上,有一个X元素允许您一次清除所有内容.有没有办法在发生这种情况时收到通知?

UISearchBarDelegate::searchBarCancelButtonClicked 仅在点击"取消"按钮时触发.

iphone uisearchbar uisearchbardelegate

9
推荐指数
1
解决办法
2万
查看次数

UISearchBar的取消和清除按钮在iOS 7中不起作用

我有一个xCode项目,其中包含一个带有"搜索栏和搜索显示控制器"的表视图,以允许用户优化显示的项目列表.一般而言,遵循http://www.raywenderlich.com/16873/how-to-add-search-into-a-table-view中提供的指导.我最近下载了支持iOS 7的最新xCode(版本5.0(5A1413)),并且正在测试有关不同目标的应用程序.

在iOS 6目标(模拟器或真实设备)上运行此应用程序时,它按预期工作,这意味着按取消按钮将删除搜索栏并按清除按钮(小灰色x)清除已输入的所有搜索条件用户.但是当项目在iOS 7目标上运行时,clear和cancel按钮都不起作用.

searchBarCancelButtonClicked方法在这个项目中实现,我已经验证当目标运行iOS 7时它没有被调用.

- (void)searchBarCancelButtonClicked:(UISearchBar *)SearchBar
{
    NSLog(@"searchBarCancelButtonClicked called");

    self.searchBar.text = nil;

    …

    // Hide Search bar when cancelled
    [self hideSeachBar];

    [self.searchBar resignFirstResponder];

    …
    }
Run Code Online (Sandbox Code Playgroud)

我的表视图控制器设置为UISearchDisplayDelegate和UISearchBarDelegate.而且它似乎仍在作为searchBar:textDidChange:在iOS 6或7目标上调用.

@interface ItemViewController () <UISearchDisplayDelegate, UISearchBarDelegate>
…
@end
Run Code Online (Sandbox Code Playgroud)

我看不到与此或任何iOS 7更改资料相关的任何其他帖子(例如https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TransitionGuide/Bars.html#//apple_ref/doc/uid/TP40013174-CH8-SW1)提到了为支持iOS7而需要进行的任何重新编码.

有什么想法吗?谢谢

objective-c uisearchbar ios ios7

7
推荐指数
1
解决办法
1万
查看次数

按下UITextField的小十字按钮时的操作

我可以使用UITextField以下代码添加一个小的十字按钮,用于在一次单击中清除所有文本.

textField.clearButtonMode = UITextFieldViewModeWhileEditing;
Run Code Online (Sandbox Code Playgroud)

我也实施了UITextFieldDelegate.

我想UINavigationBar根据我的变化激活/停用右边的按钮UITextField.规则很简单:如果文本字段至少有一个字符,只需启用该按钮,否则禁用它.

我实现了UITextField委托方法textField:shouldChangeCharactersInRange:来不断检查需求并更新按钮的状态.

现在我的问题是,当我单击文本字段上的小十字按钮时,textField:shouldChangeCharactersInRange:不会调用该方法.因此缺少必要的操作.如何识别清除按钮的命中事件?

一些图片显示我在说什么.

初始阶段:此处,"完成"按钮被禁用,因为文本字段中没有字母

键入字母时,启用"完成"按钮

现在,如果我点击清除按钮,仍然会启用"完成"按钮.这是错的.

cocoa-touch uitextfield ios uitextfielddelegate

3
推荐指数
2
解决办法
3508
查看次数