reuss wrote:
> how do I connect a textfield to a textview? I dont really understand how
> it should work, you know, I am a beginner (absolutely)
> andras
The attached example shows how to limit the length of the string in a
text field by subclassing and implementing the NSTextView delegate
method. To use it, just allocate an instance of LimitedLengthTextField
instead of NSTextField and call -setMaxLength: (defaults to 0).
Depending on what you're trying to do, more sophisticated behavior in
the delegate method may be necessary, but that shouldn't be too hard to
do.
- Alexander Malmberg
/*
copyright 2004 Alexander Malmberg <[EMAIL PROTECTED]>
*/
#ifndef LimitedLengthTextField_h
#define LimitedLengthTextField_h
#include <AppKit/NSTextField.h>
@interface LimitedLengthTextField : NSTextField
{
int maxLength;
}
-(void) setMaxLength: (int)maxLength;
@end
#endif
/*
copyright 2004 Alexander Malmberg <[EMAIL PROTECTED]>
*/
#include "LimitedLengthTextField.h"
#include <AppKit/NSTextStorage.h>
#include <AppKit/NSTextView.h>
@implementation LimitedLengthTextField
-(void) setMaxLength: (int)ml
{
maxLength=ml;
}
/* Implement the NSTextView delegate method. */
-(BOOL) textView: (NSTextView *)textView
shouldChangeTextInRange: (NSRange)r
replacementString: (NSString *)replacementString
{
int newLength;
/* Pure attribute changes are ok. */
if (!replacementString)
return YES;
/* The exact change isn't known. Disallow the change to be safe. */
if (r.location==NSNotFound)
return NO;
/* Calculate the length of the text after the change. */
newLength=[[textView textStorage] length]+[replacementString length]-r.length;
/* If it's too long, disallow the change. */
if (newLength>maxLength)
return NO;
/* Otherwise, allow it. */
return YES;
}
@end
_______________________________________________
Help-gnustep mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/help-gnustep