Difference between revisions of "Snippets"
Jump to navigation
Jump to search
Line 37: | Line 37: | ||
if (range.location == NSNotFound) | if (range.location == NSNotFound) | ||
return NO; | return NO; | ||
− | newLength=[[textView textStorage] length]+[replacementString length]- | + | newLength=[[textView textStorage] length]+[replacementString length]-range.length; |
if (newLength>maxLength) | if (newLength>maxLength) | ||
return YES; //allowing | return YES; //allowing | ||
else | else | ||
return NO; // not allowing | return NO; // not allowing |
Revision as of 21:29, 26 June 2005
Testing chars entered by users in NSTextField
(just for the case if someone else has the same problem)
1. Subclass NSTextField
2. In your subclass adopt the
- (BOOL) textView: (NSTextView*) textView shouldChangeTextInRange: (NSRange) range replacementString: (NSString*) replacementString
method.
3. In this method you can access to the replacementString as char with the following line:
char c = *([replacementString cString) + 0];
4. Then you are free to examinate the conditions...
Limiting text input length in NSTextField
(based on Alexander Malmberg's snippet)
1. Subclass NSTextField
2. In your subclass adopt the
- (BOOL) textView: (NSTextView*) textView shouldChangeTextInRange: (NSRange) range replacementString: (NSString*) replacementString
method.
3. Create an instance variable setting method:
- (void) setMaxLength: (int) ml { maxLength = ml; }
4. Then fill your method 2. with this:
int newLength; /* The exact change isn't known. Disallow the change to be safe. */ if (range.location == NSNotFound) return NO; newLength=[[textView textStorage] length]+[replacementString length]-range.length; if (newLength>maxLength) return YES; //allowing else return NO; // not allowing