use*_*975 2 macos cocoa nstextfield
我需要为 TextFields 设置字符限制。我遵循了这个答案,我能够设置一个限制。但是现在当我按下回车键时,所有字符都被清除了。什么地方出了错 ?
- (BOOL)isPartialStringValid:(NSString *__autoreleasing *)partialStringPtr
proposedSelectedRange:(NSRangePointer)proposedSelRangePtr
originalString:(NSString *)origString
originalSelectedRange:(NSRange)origSelRange
errorDescription:(NSString *__autoreleasing *)error {
if ([*partialStringPtr length] > maxLength)
return NO;
else
return YES;
}
- (NSString *)stringForObjectValue:(id)obj {
return (NSString*) obj;
}
- (BOOL)getObjectValue:(out __autoreleasing id *)obj
forString:(NSString *)string
errorDescription:(out NSString *__autoreleasing *)error {
return YES;
}
- (NSAttributedString *)attributedStringForObjectValue:(id)obj
withDefaultAttributes:(NSDictionary *)attrs {
return (NSAttributedString*) obj;
}
Run Code Online (Sandbox Code Playgroud)
如何将自己设置为 NSTextField 的委托并实现此委托方法?
- (void)textDidChange:(NSNotification *)aNotification
Run Code Online (Sandbox Code Playgroud)
在那里您可以检查文本是否太长,如果是这种情况,则将其剪切。
NSTextField *textField = (NSTextField *)[aNotification object];
if ([textField.stringValue length] > maxLength)
{
textField.stringValue = [textField.stringValue substringWithRange:NSMakeRange(0,maxLength)];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2408 次 |
| 最近记录: |