BSSingleLineFormatter
Language: Objective-C, Author: Michele Balistreri
License: Public domain
Is a formatter (subclass of NSFormatter) which removes the newlines encountered in input. This can be used to avoid newlines characters to get in NSTextFields, for example by copy&pasting.
BSSingleLineFormatter source preview
#import "BSSingleLineFormatter.h" #import "NSCharacterSet+BSNewLineCharacterSet.h" @implementation BSSingleLineFormatter - (NSString *)stringForObjectValue:(id)anObject { NSString *returnString = @""; NSString *tmpString = nil; NSScanner *scanner = [NSScanner scannerWithString:anObject]; while([scanner scanUpToCharactersFromSet:[NSCharacterSet newlineCharacterSet] intoString:&tmpString]) returnString = [returnString stringByAppendingString:tmpString]; return returnString; } - (BOOL)getObjectValue:(id *)anObject forString:(NSString *)string errorDescription:(NSString **)error { NSScanner *scanner = [NSScanner scannerWithString:string]; NSString *tmpString = nil; *anObject = @""; while([scanner scanUpToCharactersFromSet:[NSCharacterSet newlineCharacterSet] intoString:&tmpString]) *anObject = [*anObject stringByAppendingString:tmpString]; return YES; } - (BOOL)isPartialStringValid:(NSString *)partialString newEditingString:(NSString **)newString errorDescription:(NSString **)error { if([partialString rangeOfCharacterFromSet:[NSCharacterSet newlineCharacterSet]].location == NSNotFound) return YES; NSScanner *scanner = [NSScanner scannerWithString:partialString]; NSString *tmpString = nil; *newString = @""; while([scanner scanUpToCharactersFromSet:[NSCharacterSet newlineCharacterSet] intoString:&tmpString]) *newString = [*newString stringByAppendingString:tmpString]; return NO; } @end
BSSingleLineFormatter header preview
#import <Cocoa/Cocoa.h> @interface BSSingleLineFormatter : NSFormatter { } @endDownload Archive
Dependencies:
Compatible with:
- Mac OS X 10.0
- Mac OS X 10.1
- Mac OS X 10.2
- Mac OS X 10.3
- Mac OS X 10.4 PPC
- Mac OS X 10.4 Intel
- Mac OS X 10.5 PPC
- Mac OS X 10.5 Intel

Hmm..... beautiful code snippets. However, a little wrapper application that shows how to use them would be EXTREMELY helpful. The logic is pretty clear, but the know-how of integrating stuff into COCOA apps is not documented enough.
Hmm..... beautiful code snippets. However, a little wrapper application that shows how to use them would be EXTREMELY helpful. The logic is pretty clear, but the know-how of integrating stuff into COCOA apps is not documented enough.