2011-11-27 97 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

@Havt我已經發布了onBtn方法的其餘部分,請給我一隻手,謝謝 –

+2

鍵盤出現是因爲一些想要鍵盤的UI對象成爲第一響應者。 –

回答

2

您設置AlertView的風格Input,它會設置它作爲第一個響應並顯示鍵盤。

av.style =TSAlertViewStyleInput; 

嘗試另一種風格。 ;)

+0

感謝您的建議。我在TSAlertView中發現,它放棄了FirstResponder文本字段。現在的問題是點擊按鈕時,它不會彈出警報視圖,它只是顯示鍵盤。 –

+1

@Jane_Meng我嘗試了作者給出的Demo,甚至評論出resignFirstResponder是可以的。關鍵之一是'av.style = _hasInputFieldSwitch.on? TSAlertViewStyleInput:TSAlertViewStyleNormal;'。如果你打開'InputFieldSwitch',它將使用TSAlertViewStyleInput和顯示鍵盤,其他方式只是顯示alertView(在這種情況下,使用style:'TSAlertViewStyleNormal')。 – Kjuly

+0

順便說一下,你可以下載並測試自己。 ;) – Kjuly

1

我沒有使用過TSAlertView,但是在瀏覽代碼之後,你會嘗試一個黑客。致電演出後,請嘗試辭職第一響應者:

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

這可能會也可能不會。如果不是,並且您確實需要隱藏鍵盤,則可能需要修改TSAlrtView類本身中有關通知的代碼。

相關問題