所以我想引入一個模態視圖控制器,它有一個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