2011-11-27 5 views
0

これはシングルビューアプリケーションで、ボタンをクリックするとその上にボタンが追加されます。 ボタンをクリックすると、キーボードが表示されます。 と私はonBtn関数でTSAlertViewを自動的に解放できません。 なぜ、私は本当に混乱しているのですか?ios5、TSAlertViewがポップアップしない、なぜ私に教えてくれる?

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; 
    btn.frame = CGRectMake(30, 30, 100., 50); 
    [btn setTitle:@"Test" forState:UIControlStateNormal]; 
    [btn addTarget:self action:(@selector(onBtn:)) forControlEvents: UIControlEventTouchUpInside]; 
    [btn setBackgroundColor:UIColor.greenColor]; 
    [self.view addSubview:btn]; 
} 

-(void)onBtn:(id)sender{ 
    TSAlertView* av = [[TSAlertView alloc] init]; 
    av.title = @"Test"; 
    av.message = @"This is a test"; 
    [av addButtonWithTitle:@"cancel"]; 
    [av addButtonWithTitle:@"rename"]; 
    av.style =TSAlertViewStyleInput; 
    av.buttonLayout = TSAlertViewButtonLayoutNormal; 
    av.usesMessageTextView =NO; 
    av.width = 0.0; 
    av.maxHeight = 0.0; 
    [av show]; 
} 

enter image description here

+0

TSAlertViewの既定値は通常のビューです。あなたのコードにこれを引き起こす何か他のものがなければなりません。 onBtnメソッドの残りの部分を表示できますか? – TigerCoding

+0

@ハヴト私は残りのonBtnメソッドを投稿してくれてありがとう。 –

+2

キーボードを望んでいるUIオブジェクトが最初のレスポンダになっているので、キーボードが表示されます。 –

答えて

2

あなたはInputAlertViewのスタイルを設定し、それが最初の応答者とショーのキーボードとして設定します。

av.style =TSAlertViewStyleInput; 

他のスタイルを試してみてください。 ;)

+0

あなたの提案に感謝します。私はTSAlertViewで、それはテキストフィールドFirstResponderを辞任見つける。今問題はボタンをクリックするときですが、警告表示をポップアップさせず、キーボードだけを表示します。 –

+1

@ Jane_Meng私は、著者が与えたデモを試しても、resignFirstResponderのコメントはOKです。重要なのは 'av.style = _hasInputFieldSwitch.on? TSAlertViewStyleInput:TSAlertViewStyleNormal; '。 'InputFieldSwitch'をオンにすると、TSAlertViewStyleInputを使用し、キーボードを表示します。他の方法では、alertViewを通常通り表示します(この場合は、style:' TSAlertViewStyleNormal'を使用します)。 – Kjuly

+0

ところで、ダウンロードして自分でテストすることができます。 ;) – Kjuly

1

私はTSAlertViewを使用していませんが、コードを参照した後、ハッキングを試みます。ショーを呼び出した後、最初のレスポンダーを辞任させてください:

[av show]; 
[av.inputTextField resignFirstResponder]; 

これは機能する場合もあれば機能しない場合もあります。そうでない場合、実際にキーボードを隠しておく必要がある場合は、TSAlrtViewクラス自体の通知に関するコードを変更したい場合があります。

関連する問題