Я попытался установить appDelegate в качестве делегата NSTextfield и добавил этот метод (myTextfield и myButton - IBOutlets):
- (void)textDidChange:(NSNotification *)aNotification
{
if ([[myTextField stringValue]length]>0) {
[myButton setEnabled: YES];
}
else {
[myButton setEnabled: NO];
}
}
Это сложный путь, ноэто должно работать просто отлично.Либо вы не подключили выход delegate
текстового поля к этому объекту, либо не подключили выход myTextField
к текстовому полю, либо не подключили выход myButton
к кнопке.
Другим способом было бы присвоить контроллеру свойство, представляющее строковое значение, привязать привязку value
текстового поля к этому свойству stringValue
и привязать привязку enabled
кнопки к контроллеру stringValue.length
.
Вы также можете присвоить контроллеру два свойства, одно из которых имеет логическое значение, и установить его как зависящее от свойства строки и привязать к нему кнопку.Это более чистое и, возможно, более надежное решение, хотя это и больше работы.