如何在TWTweetComposeViewController中设置文本光标的位置?

时间:2012-08-14 22:25:37

标签: ios xcode twitter cursor

我正在使用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];

1 个答案:

答案 0 :(得分: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)];
    }
}

在我的应用中实现了这个,所以如果你需要进一步的帮助,请告诉我。