这是设置:
SNController是一个NSObject,它有内部:
- 界面视图
- UITextField
- UISegmentedControl
- UIL标签
- 用户界面按钮
该视图与ViewController中的视图相同。
当时可以看到一个。当UITextField可见(alpha = 1.0)时,所有其他的都是不可见的(alpha = 0.0)。
(1)我执行动画,我想要文本字段:
UITextField *textField;
在动画发生时成为第一响应者:
[textField becomeFirstResponder];
[UIView animateWithDuration: ...];
不幸的是,它不起作用。
我已经记录了文本字段,它显示它不能成为第一响应者,我不知道为什么......
我已经尝试了另外两种方法,但到目前为止都没有奏效:
(2) 一种从SNController与ViewController通信的复杂方式:
在SNController.h/.m内部:
@property (nonatomic, copy) void(^eventCallBack)();
if (self.eventCallBack) {
self.eventCallBack();
}
在ViewController.m内部:
__weak ViewController *self_ = self;
self.restoration.controller.eventCallBack = ^(){
[self_.restoration.controller.textField becomeFirstResponder];
};
(3) 我还从SNController内部尝试了这些方法:
[self.textField performSelector:@selector(becomeFirstResponder) withObject:nil afterDelay:0.0];
[self.textField performSelectorOnMainThread:@selector(becomeFirstResponder) withObject:nil waitUntilDone:YES];
它只是不会放弃,无论如何它都不会成为第一响应者。
有任何想法吗?