我在一些非常基本的事情上遇到了麻烦。我想调用此操作:
- (IBAction)changeGreeting:(id)sender {
self.userName = self.textField.text;
NSString *nameString = self.userName;
if ([nameString length]==0) {
nameString = @"World";
}
NSString *greeting = [[NSString alloc] initWithFormat:@"Hello, %@!", nameString];
self.label.text = greeting;
}
当用户在文本字段中输入文本后按回车键时。这是我所拥有的:
-(BOOL)textFieldShouldReturn:(UITextField *)theTextField{
if (theTextField == self.textField) {
[theTextField resignFirstResponder];
[changeGreeting];
}
return YES;
}
我不确定在它说"changeGreeting"的地方放什么。认为我在这里错过了这个概念。感谢您的任何帮助。
你的语法是错误的。试试这个:
[self changeGreeting:self];
在Objective-C中,发送消息(调用函数)的语法是这样的:
[receiver message];
由于您在调用它的同一类中实现 changeGreeting:
方法,因此接收器将self
.作为参数(发送方),您通常会传递发送消息的对象,但由于您不在changeGreeting:
实现中使用它,因此您在那里传递什么并不重要。
你以错误的方式调用了changeGreeting函数
你应该这样称呼它
[self changeGreeting:nil];
或者,如果您想从textField中跟踪某些内容,那么
[self changeGreeting:theTextField];
发送方将获取文本字段作为参数,如果您需要基于文本字段进行一些处理。