- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我在 tableviewcontroller 中设置了一个 searchBar。我引用了这个类似的问题 UISearchBar cannot become first responder after UITableView did re-appear但我仍然无法将其设置为第一响应者。在 .h 文件中:
@property (strong, nonatomic) UISearchController *searchController;
@property (strong, nonatomic) IBOutlet UISearchBar *searchBar;
查看didload:
self.searchController = [[UISearchController alloc]initWithSearchResultsController:nil];
self.searchController.searchResultsUpdater = self;
self.searchController.dimsBackgroundDuringPresentation = NO;
self.searchController.hidesNavigationBarDuringPresentation = NO;
self.searchController.searchBar.frame = CGRectMake(self.searchController.searchBar.frame.origin.x, self.searchController.searchBar.frame.origin.y, self.searchController.searchBar.frame.size.width, 44.0);
self.tableView.tableHeaderView = self.searchController.searchBar;
在 viewDidAppear 中:
-(void)viewDidAppear:(BOOL)animated {
[self.searchController setActive:YES];
[self.searchController.searchBar becomeFirstResponder];
[super viewDidAppear:animated];
}
当我转到 View 时,searchBar 动画,但没有出现键盘。
最佳答案
我也注意到了这个问题。似乎发生的是对 becomeFirstResponder
的调用是在 searchController 仍在“加载”时完成的。如果您注释掉 becomeFirstResponder
您会注意到没有区别。所以我们需要一种在 searchController 加载完成后调用 becomeFirstResponder 的方法。
当我查看各种委托(delegate)方法时,我注意到有一个委托(delegate)方法:
- (void)didPresentSearchController:(UISearchController *)searchController
这个方法在 searchController 出现后立即被调用。然后我调用 becomeFirstResponder
:
- (void)didPresentSearchController:(UISearchController *)searchController
{
[searchController.searchBar becomeFirstResponder];
}
这解决了问题。您会注意到,当 searchController 加载时,搜索栏现在有了焦点。
关于ios - 无法将 searchBar 设置为 firstResponder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27951965/
如果我目前没有与应用程序进行任何交互(没有选择文本字段等...),是否还有第一响应者对象?正如我测试的那样,如果我向响应者链发送一条消息,那么当前的 ViewController.view 会收到它,
这个问题在这里已经有了答案: first responder is not being set correctly (2 个答案) 已关闭10 年前。
我创建了一个应用程序,在 ViewController.m 和 viewDidLoad 中,我编写了以下代码 for (UIView* v in self.view.subviews){
我正在尝试让摇动手势起作用。这是一些代码 在我的实现文件中 - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event
对于我的自定义单元格,举个简单的例子,我只有一个 UITextField,有没有办法让 刚刚插入的单元格 becomeFirstResponder insertRowsAtIndexPaths ? 我
我需要跟踪哪个文本字段是我的自定义键盘工作的 firstResponder。在下面的代码中,我大大简化了我的程序,但这是问题的要点: @implementation SimplePickerViewC
我在让文本字段接受 becomeFirstResponder 指令时遇到问题。 我提供了一种自定义机制来在导航栏中创建标题。我有另一个 View Controller 成功地使用了同样的技术。在 vi
为什么我的 InterfaceBuilder 文件中的 FirstResponder 缺少 redo: 连接(在 Received Actions 列表中)? undo: 存在,但 redo: 不存在
你知道(你能看到)为什么我不能退出 FirstResponder 并隐藏键盘吗? 仅供引用:Xcode 9 import UIKit class ViewController: UIViewContr
所以我正在制作一个应用程序,但在从 UISearchBar 和 UITextFields 中关闭键盘时遇到了一些问题。这是我的应用程序的结构: NavigationController -> View
我正在开发一个具有主窗口和多个面板窗口的 Cocoa 应用程序。 当用户通过单击主窗口等离开文本字段时,我需要在 NSTextField(位于面板窗口上)上自动保存一些文本。到目前为止,我已经尝试通过
我有一个 UITextView。我实现了一个导航栏 UIBarButtonItem 来响应触摸并为我的 UITextView 退出 firstResponder。 但是,当调用选择器方法时,键盘不会消
我在 tableviewcontroller 中设置了一个 searchBar。我引用了这个类似的问题 UISearchBar cannot become first responder after
我有一个 Mac 应用程序,它由一个窗口组成,其中包含数量可变的 Pane ,每个 Pane 都包含一个表格 View 。该窗口有一个带有按钮的工具栏,我希望当前选定 Pane 的 VC 能够处理验证
在viewDidLoad()中: searchController = UISearchController(searchResultsController: nil) let cancelButto
我有一个名为 songInfoView 的 View ,其中包含 3 个 UITextFields 和一个 UIButton。我在父 View 中创建一个临时 UITextField 以调出键盘并将
我知道这个问题可能有很多关于 SO 的答案。但是在尝试了在互联网上找到的所有解决方案之后(加上我的一些自定义发明..)我仍然无法实现我想要实现的目标。 故事是这样的: 我有一个 UICollectio
我有四个 UITextField,每个代表 OTP 的一个数字。我希望控件在用户输入代码时转移到连续的文本字段。我的实现如下。 extension FillSignUpCodeController:
我有 UIViewController 并为其 View 创建了自定义类。顺便说一句,我在该类中重新定义了方法“canBecomeFirstResponder”,因此它始终返回 true。当调用 vi
我使用以下代码修改框架大小以适应显示/消失的键盘: - (void)moveCodeViewForKeyboard:(NSNotification*)aNotification up:(BOOL)up
我是一名优秀的程序员,十分优秀!