所以我想引入一个模态视图控制器,它有一个UITextView,并且我想让键盘自动弹出并且UITextView有焦点。如何以编程方式提供UITextView焦点?
我找到了一种方法做来完成这项以下几点:
textView.editable = YES;
textView.editable = NO;
这似乎只是哈克对我来说,有另一种方式?
所以我想引入一个模态视图控制器,它有一个UITextView,并且我想让键盘自动弹出并且UITextView有焦点。如何以编程方式提供UITextView焦点?
我找到了一种方法做来完成这项以下几点:
textView.editable = YES;
textView.editable = NO;
这似乎只是哈克对我来说,有另一种方式?
因为从UIResponder
(间接,它实际上是从UIScrollView
继承,从UIView
继承其然后从UIResponder
继承),你可以叫你的文本字段的-becomeFirstResponder
方法,这将导致其成为第一个响应UITextView
继承并开始编辑:
[textView becomeFirstResponder];
这似乎有点hackish。
'有焦点'的Cocoa Touch术语是'first responder',UITextView
s会在他们是第一响应者时显示他们的键盘。我能想到的几种技术,使的UITextView成为第一个响应者,但最简单的可能是在您的视图控制器viewWillAppear中或viewDidAppear方法:
- (void)viewWillAppear:(BOOL)animated { [myTextView becomeFirstResponder]; [super viewWillAppear:animated]; }
[textView becomeFirstResponder];
斯威夫特:
textView.becomeFirstResponder()
当你希望焦点成为加载ViewController时特定的TextView,您可以将ViewView加载函数中的textView.becomeFirstResponder()覆盖如下函数:
override func viewDidLoad() {
super.viewDidLoad()
textView.becomeFirstResponder()
}
我觉得这个作品没有任何错误
viewDidAppear为我工作,但不viewWillAppear。想知道为什么... – 2015-10-20 20:01:05