Ios 将值从uitextfield传递给选择器

Ios 将值从uitextfield传递给选择器,ios,objective-c,Ios,Objective C,我有UITextField的名字\u nameField 我想通过使用@Selector()将_nameField.text传递给 这是我的Uitextfield _nameField = [[UITextField alloc]initWithFrame:CGRectMake(self.view.frame.size.height/2-100, self.view.frame.size.width/2-20, 200, 40)]; _nameField.delegate = self; [se

我有UITextField的名字\u nameField 我想通过使用@Selector()将_nameField.text传递给

这是我的Uitextfield

_nameField = [[UITextField alloc]initWithFrame:CGRectMake(self.view.frame.size.height/2-100, self.view.frame.size.width/2-20, 200, 40)];
_nameField.delegate = self;
[self.view addSubview:_nameField];
这是我的钮扣

UIButton *confirm = [[UIButton alloc]initWithFrame:CGRectMake(self.view.frame.size.height/2-50, self.view.frame.size.width/2+60, 100, 40)];
[confirm setTitle:@"Confirm" forState:UIControlStateNormal];
[confirm addTarget:self action:@selector(userSetStats:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:confirm];
这是我的用户设置状态:

-(void)userSetStats:(NSString *)name{
NSMutableDictionary *userData = [[NSMutableDictionary alloc]init];
[userData setObject:name forKey:@"Name"];
现在我可以发送值,但我得到的值是

Name = "<UIButton: 0x9a2ddd0; frame = (190 220; 100 40); opaque = NO; layer = <CALayer: 0x9a2df00>>";
Name=”“;

我试图在这个网站上找到任何答案。我找到了一些答案,但我不明白。addTarget的选择器只能是发件人。在这种情况下,不需要参数

[confirm addTarget:self action:@selector(userSetStats) forControlEvents:UIControlEventTouchUpInside];
选择器是

-(void)userSetStats
{
    NSMutableDictionary *userData = [[NSMutableDictionary alloc]init];
    [userData setObject:_nameField.text forKey:@"Name"];
}
有以下表格:

- (IBAction)doSomething:(id)sender;
- (IBAction)action:(id)sender forEvent:(UIEvent *)event;
其中,
sender
是触发操作的控件。因此:

-(void)userSetStats:(id)sender {

    NSMutableDictionary *userData = [[NSMutableDictionary alloc]init];
如果您想从(发送)按钮获取标题,则:

    UIButton *button = (UIButton *)sender;
    [userData setObject:button.title forKey:@"Name"];
否则,如果需要文本字段中的文本,则:

    [userData setObject:_nameField.text forKey:@"Name"];

该错误消息不完整。请改正它。
    [userData setObject:_nameField.text forKey:@"Name"];