Get value from NSTextField
MacosCocoaNstextfieldMacos Problem Overview
I have an NSTextField
and I need to get the field's value into a variable. What's the appropriate method?
Macos Solutions
Solution 1 - Macos
For an NSString
you would use:
NSString *myString = [theTextField stringValue];
For an int
you would use:
int myInt = [theTextField intValue];
There are many other methods for getting the value from a control. Have a look at the NSControl
reference for more info, under the "Getting and Setting the Control’s Value" section.
Here's a list:
doubleValue
floatValue
intValue
integerValue
objectValue
stringValue
attributedStringValue
Solution 2 - Macos
Swift 3.x Version:
myField.stringValue
Solution 3 - Macos
[myField stringValue]
NSTextField
inherits from NSControl
, and NSControl
defines the stringValue
/setStringvalue:
methods.
Solution 4 - Macos
Also:
Say you have an object (MyObject
) that wants to be be notified when someone types into a NSTextField
. In the .h file, MyObject
should declare it conforms to NSTextFieldDelegate
, as in...
@interface MyObject : NSObject <NSTextFieldDelegate>
Then you set MyObject as the delegate of the NSTextField
[myTextField setDelegate:myObject]
Now, you can find out when something happens in the textfield by implementing methods in MyObject like:
-(void)controlTextDidEndEditing:(NSNotification *)aNotification;
-(void)controlTextDidChange:(NSNotification *)aNotification;
-(void)controlTextDidBeginEditing:(NSNotification *)aNotification;