2009-10-13 29 views
0

我有一個按鈕,我只希望啓用時,文本框不是空白。我一直試圖通過實施以下方法來做到這一點,沒有任何運氣。IPhone Objective-C只啓用一個按鈕,如果NSTextfield不爲空

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{

是否有文本被改變後,我可以實現一個被炒魷魚的另一個委託方法?在這種方法中,有一些方法可以告訴哪些按鍵被按下,如果是刪除或類似的東西?

回答

1

您可以檢查string.length == 0range.length > 0;。這表示刪除。然而,你真正想要的是隻做待處理的修改,然後檢查你是否還有一個非空字符串。

像這樣的東西(鍵入,沒有編譯):

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 
    NSString *testString = [textField.text stringByReplacingCharactersInRange:range withString:string]; 

    if(testString.length) 
     myButton.enabled = YES; 
    else 
     myButton.enabled = NO; 
} 
+0

真棒,這正是我一直在尋找。謝謝。 – 2009-10-13 17:20:16

+0

如果你想簡潔起見,你可以這樣做:myButton.enabled = testString.length;並丟失3行代碼。 – 2009-10-13 17:23:58

+2

我會小心分配一個整數到BOOL。有一個運行時(我不記得是否是iPhone),這將導致控制啓用奇數長度和禁用偶數。建議myButton.enabled = testString.length> 0。 – 2009-10-13 21:36:22

相關問題