我在MainMenu.xib中有一個NSText字段,並且設置了一個操作來驗證它是否適用於電子郵件地址。我希望NSTexFields邊框顏色(藍色發光)在我的動作返回NO時顯示爲紅色,並在動作返回YES時顯示爲綠色。這裏是動作:更改NSTextField的邊框「發光」顏色
-(BOOL) validEmail:(NSString*) emailString {
NSString *regExPattern = @"^[A-Z0-9._%+-][email protected][A-Z0-9.-]+\\.[A-Z]{2,4}$";
NSRegularExpression *regEx = [[NSRegularExpression alloc] initWithPattern:regExPattern options:NSRegularExpressionCaseInsensitive error:nil];
NSUInteger regExMatches = [regEx numberOfMatchesInString:emailString options:0 range:NSMakeRange(0, [emailString length])];
NSLog(@"%ld", regExMatches);
if (regExMatches == 0) {
return NO;
} else
return YES;
}
我調用此函數而現在設置文本的顏色,但我想設置的NSTextField的發光顏色來代替。
- (void) controlTextDidChange:(NSNotification *)obj{
if ([obj object] == emailS) {
if ([self validEmail:[[obj object] stringValue]]) {
[[obj object] setTextColor:[NSColor colorWithSRGBRed:0 green:.59 blue:0 alpha:1.0]];
[reviewButton setEnabled:YES];
} else {
[[obj object] setTextColor:[NSColor colorWithSRGBRed:.59 green:0 blue:0 alpha:1.0]];
[reviewButton setEnabled:NO];
}
}
}
我打開子類NSTextField,但最乾淨的方式來做到這一點將不勝感激!
你有沒有想出解決辦法?我正在尋找同樣的事情。我不知道在Cocoa中是否有標準的方式來表明一個無效的字段。 –