2014-02-24 86 views
1

我在我的Cocoa應用程序中有一個TextField。這個TextField有時會被填充並且有時是空的。可可通知,如何觀察事件?

我想要它,所以當字段爲空時,一個按鈕被禁用。現在,只要我從CoreField獲取其值的地方對Core Data進行一些操作,就會檢查該字段。

我希望它總是被檢查。

回答

0

如果用戶編輯文本字段並調出字段編輯器,則可以使用以下內容。

你可以實現NSTextFieldDelegate協議(這實際上只是NSControlTextEditing協議)。例如,在控制器或委託對象中實現control:textShouldEndEditing:方法,並使用它來檢查新字符串的值。如果字符串爲空,則禁用該按鈕。

// In a control object which has a reference to the NSTextField and the NSButton 
- (BOOL)control:(NSControl *)control textShouldEndEditing:(NSText *)fieldEditor { 
    if ([fieldEditor.string isEqualToString:@""]) 
    { 
     [self.button setEnabled:NO]; 
     return YES; 
    } 

    [self.button setEnabled:YES]; 
    return YES; 
} 

更新:我現在不約CodeData該位。在這種情況下,你應該按照下列指示,Disable/Enable NSButton if NSTextfield is empty or not

另一種方法是給控制器的特性暴露 串value,綁定文本字段的值綁定到這個stringValue 屬性,綁定按鈕的enabled綁定到控制器的 stringValue.length