3

TWTweetComposeViewController を使用しており、初期テキストを画面のタイトルに設定すると、ハッシュタグの後にテキスト カーソルが表示されるので、ハッシュタグの前に表示させたいです。cursor=(0,0) などのようなことをする方法はありますか? 私はドキュメントを見ましたが、そこには何もありません。

参考までに、私が使っているものです。

TWTweetComposeViewController *tweetSheet = [[TWTweetComposeViewController alloc]init];
[tweetSheet setInitialText:[NSString stringWithFormat:@"#%@", self.title]];
tweetSheet.completionHandler = ^(TWTweetComposeViewControllerResult result){
    [self dismissModalViewControllerAnimated:YES];
};
[self presentModalViewController:tweetSheet animated:YES];
4

1 に答える 1

1

全く同じものを探しました。ちょっとしたハックで実現できます。これはソースですhttp://www.sunetos.com/items/2012/06/04/cleanly-accessing-the-uitextview-field-in-twtweetcomposeviewcontroller-2/

著者によると、アプリはアプリ ストアで承認されました。

// at an appropriate place in your code, 
// add and remove the observer for UIKeyboardWillShowNotification

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(handleKeyboardWillShow:) 
                                             name:UIKeyboardWillShowNotification 
                                           object:nil];

- (UIView *) findFirstResponderInView:(UIView*) view
{
    if (view.isFirstResponder) {
        return view;
    }
    for (UIView *subview in view.subviews) {
        UIView *result = [self findFirstResponderInView:subview];
        if (result) {
            return result;
        }
    }
    return nil;
}

- (void) handleKeyboardWillShow:(NSNotification *) notification;
{
    UIView *fr = [self findFirstResponder:self.tweetSheetViewController.view];
    if ([fr isKindOfClass:[UITextView class]]) {
        UITextView *tv = (UITextView *) fr;
        [tv setSelectedRange:NSMakeRange(0,0)];
    }
}

私のアプリでこのように実装したので、さらにサポートが必要な場合はお知らせください。

于 2012-08-28T13:55:35.403 に答える