2010-06-03 84 views
1

我有Twitter發佈的警報視圖。 警報視圖有2個按鈕和一個文本框 發送和取消禁用警報查看按鈕

我想禁用發送按鈕,直到用戶填充消息框(即textfield)。像 一樣,空字段類型的驗證。

如何禁用發送按鈕?

回答

1

我也有類似的要求,是能夠做到這一點,而不訴諸任何蘋果(即採用私有類或API的)的明文禁止。在下面的例子中,我找到並禁用了「恢復」按鈕。

注1 - 的位置「[警報顯示]」是很重要的。它(顯然)列出了觀點,因此必須在嘗試查看視圖層次結構之前完成。

注2 - 的「載:」方法是我定義的,做一個NSString不區分大小寫字符串搜索。在你的代碼中使用rangeOfString。

UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Application Warning" 
               message:@"What should I do with the file?" 
               delegate:self 
             cancelButtonTitle:@"Ignore" 
             otherButtonTitles:@"Remove", @"Recover", nil]; 

[alert show]; 

// try to find and disable "Recover" button 
for(UIView *aView in alert.subviews) 
{ 
    if ([[[aView class] description] contains:@"Button"]) 
    {     
     UIButton *aButton = (UIButton *)aView; 
     if ([aButton.titleLabel.text contains:@"Recover"]) 
     { 
      aButton.enabled = NO; 
     }     
    } 
}  
+0

不能工作(不再) – user387184 2013-07-08 14:47:32

+0

哪個版本的iOS壞了?我已經在iOS 5和iOS 6上測試過了,它在兩者上都有效。如果您使用的是iOS 7測試版,則可能無法正常工作,因爲警報現在已經搞亂了。 – 2013-07-10 13:20:44

+0

IOS 7的解決方案 – Codesen 2013-09-27 11:17:56

1

對於當前的SDK,這是不可能的。您將不得不創建一個自定義視圖來接受用戶的輸入。您將文本字段添加到UIAlertView的事實本身不受支持,並且可能會在任何未來的SDK中打破。

我建議你創建一個自定義視圖如果你還希望它看起來像一個UIAlertView中,你可以通過適當的圖片和自定義按鈕做到這一點。

+0

dats一個好主意......我已經做了類似dat的東西,所以它不會很方便。 謝謝mike 關於 – iscavengers 2010-06-03 12:49:43