TWTweetComposeViewControllerの初期カーソル位置を一番最初に持っていく方法
iOS5で登場したTWTweetComposeViewControllerで簡単にTwitter投稿機能を実装出来るようになったんですが、
initialTextを入れた際、最初のカーソル位置がいちばんうしろに来てしまう。
initialTextでハッシュタグか何かを入れる場合が多いので、できれば表示された段階で一番前にカーソル位置があって欲しいと思うわけです。
最初にカーソルが欲しい
Viewを調べるとテキスト入力部分はUITextViewであることがわかりました。
従ってfirstResponderになっていると想像できます。
firstResponderを捜す方法はググったらすぐ出てきました。
これを追加してあとはカーソル位置を最初に持っていくだけです。
iOS5からUIViewController#presentViewController:animated:completionメソッドのおかげでモーダル表示後に
処理を加えるのが楽になりました。
- (IBAction)tweet:(id)sender { TWTweetComposeViewController *tvc = [[TWTweetComposeViewController alloc] init]; [tvc setInitialText:@"#ハッシュタグ"]; [self presentViewController:tvc animated:YES completion:^{ UITextView *textView = (UITextView *)[[[UIApplication sharedApplication] keyWindow] findFirstResponder]; textView.selectedRange = NSMakeRange(0, 0); }]; }