我有一个popover,顶部有一个搜索字段。在popover中没有别的东西可以成为第一个响应者。当弹出窗口出现时,搜索字段总是以第一个响应者开始。我不希望这种情况发生。
我试过了:
为搜索字段选择“拒绝第一响应者”。这似乎解决了这个问题,但是当你点击搜索字段时,就不会发生成为第一响应者的动画。
在我的视图控制器的viewDidLoad
中:
[self.view.window makeFirstResponder:nil];
什么都不做。似乎搜索字段成为视图加载后的第一个响应者。
这确实有效,有点像:
[self.view.window performSelector:@selector(makeFirstResponder:)
withObject:nil afterDelay:0];
但是当弹出窗口打开时,您可以看到搜索字段执行resign-first-responder动画。
如何防止搜索字段成为第一响应者?
答案 0 :(得分:1)
这应该有效(未经测试):
mayBecomeFirstResponder
属性- (BOOL)acceptsFirstResponder { return self. mayBecomeFirstResponder; }
- (void)viewWillAppear
并将搜索mayBecomeFirstResponder
设置为NO
- (void)viewDidAppear
并将搜索mayBecomeFirstResponder
设置为YES