簡體   English   中英

以編程方式專注於作為AccessoryView創建的UITextView

[英]Programmatically focus on UITextView that is created as an AccessoryView

在我的iOS應用中,我創建一個UIAlert並向其中動態添加一個UITextView:

 UIAlertView *tweetAlert = [[UIAlertView alloc] initWithTitle:@"Compose Tweet"
                                                             message:nil
                                                            delegate:self
                                                   cancelButtonTitle:@"Cancel"
                                                   otherButtonTitles:nil];
        tweetTextView = [UITextView new];
        [tweetTextView setText:[NSString stringWithFormat:@"%@ %@", [[NSUserDefaults standardUserDefaults] valueForKey:@"tweetText"], self.setShareURL]];

        [tweetAlert setValue:tweetTextView forKey:@"accessoryView"];
        [tweetAlert addButtonWithTitle:@"Tweet"];
        [tweetAlert show];
        [tweetTextView becomeFirstResponder]; // focus textview and open keyboard

我試圖將重點放在最后一行的UITextView上,以便在出現UIAlertView時打開鍵盤。 但是,沒有出現鍵盤,並且UITextView不在焦點上。

我也試過

[[tweetAlert valueForKey:@"accessoryView"] becomeFirstResponder];

但是我得到了錯誤

*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIAlertView 0x1358b3200> valueForUndefinedKey:]: this class is not key value coding-compliant for the key accessoryView.'

任何想法如何專注於動態創建的UITextView,該UITextView作為附件視圖嵌入在UIAlertView中?

通常不建議您修改警報視圖的視圖層次結構。 您應該只使用文本輸入UIAlertView:

UIAlertView *tweetAlert = [[UIAlertView alloc] initWithTitle:@"Compose Tweet"
                                                             message:nil
                                                            delegate:self
                                                   cancelButtonTitle:@"Cancel"
                                                   otherButtonTitles:nil];
tweetAlert.alertViewStyle = UIAlertViewStylePlainTextInput;

您可以使用UIAlertViewDelegate方法- (void)didPresentAlertView:(UIAlertView *)alertView使textview成為第一響應者。

- (void)didPresentAlertView:(UIAlertView *)alertView {
    [tweetTextView becomeFirstResponder];
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM