所以我想引入一个带有UITextView的模态视图控制器,我希望键盘自动弹出,UITextView有焦点。
通过执行以下操作,我找到了实现此目的的方法:
textView.editable = YES;
textView.editable = NO;
这对我来说似乎很难看,还有另外一种方法吗?
答案 0 :(得分:155)
由于UITextView
继承自UIResponder
(间接地,它实际上继承自UIScrollView
,其继承自UIView
然后继承自UIResponder
1}})您可以在文本字段上调用-becomeFirstResponder
方法,这将使其成为第一个响应者并开始编辑:
[textView becomeFirstResponder];
答案 1 :(得分:18)
夫特:
textView.becomeFirstResponder()
答案 2 :(得分:11)
这确实有点像黑客。
“有焦点”的Cocoa Touch术语是“第一响应者”,UITextView
将在第一个响应者时显示他们的键盘。我可以想到几种技术让UITextView成为第一个响应者,但最简单的可能是你的视图控制器的viewWillAppear或viewDidAppear方法:
- (void)viewWillAppear:(BOOL)animated { [myTextView becomeFirstResponder]; [super viewWillAppear:animated]; }
答案 3 :(得分:7)
[textView becomeFirstResponder];
答案 4 :(得分:0)
当您希望焦点在加载ViewController时成为特定的TextView时,您可以将textView.becomeFirstResponder()放在ViewDidLoad overrode func中,如下所示:
override func viewDidLoad() {
super.viewDidLoad()
textView.becomeFirstResponder()
}
我发现这没有任何错误
答案 5 :(得分:0)
在Xamarin Forms Custom Render上:
protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
{
base.OnElementChanged(e);
if (Control != null)
{
Control.BecomeFirstResponder();
}
}