Yup, that's right.

An object that has a delegate sends certain pre-defined messages to the delegate at certain times. Those times are described by the name of the delegate method. For example, "controlTextDidChange:" is sent after the text in an NSControl changes. The naming convention is very consistent throughout Cocoa. Delegate methods sound almost like newspaper headlines: "window will close", "file manager should proceed after error", etc.

You can see the list of delegate methods an object supports by looking at its class documentation. You wouldn't have found - controlTextDidChange: by looking at NSTextField, but by going up the inheritance hierarchy you would have found NSControl's delegate methods.

The delegate contract is quite relaxed. If the object's delegate is nil, it doesn't send any delegate messages. If the delegate doesn't implement all the delegate methods, only the messages that are implemented are sent. The delegate can be an instance of any class -- all that matters is what methods it implements. So you can implement only what you need.

--Andy

On Apr 28, 2008, at 5:06 PM, Philip Bridson wrote:

Ok. Thanks for the reply - this may sound stupid but I haven't dealt
with delegates much. If I make the window controller the delegate
would I just declare a method in that window controller's files as
below?

- (void)controlTextDidChange:(NSNotification)notification
{
runMyFunction();
}

Sorry if I seem stupid but as I say I don't use them much.

Thanks,

Phil

On Monday, April 28, 2008, at 08:34PM, "Andy Lee" <[EMAIL PROTECTED]> wrote:
Give your text field a delegate, and in the delegate implement -
controlTextDidChange:.

See the docs for more details.

--Andy

On Apr 28, 2008, at 3:17 PM, Philip Bridson wrote:

Hi there,

I want to create a password analysis tool that updates an
NSLevelIndicator with each character entered into a
NSSecureTextField. I know how to update the NSLevelIndicator once the user has finished entering text but how do i update it per character?

To give you a bit more info:

The text is passed to a function: the function returns a value: the
value is used to update the level indicator.

This works fine but I can only do it once the whole word is in the
field. How do I pass characters as they are entered to my func? Such
as:

1. P
2. Pa
3. Pas
4. Pass
5. Passw
6. Passwo
7. Passwor
8. Password

Thank you for any help you might give.

Phil.


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/aglee%40mac.com

This email sent to [EMAIL PROTECTED]

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/philipleebridson%40mac.com

This email sent to [EMAIL PROTECTED]



_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to