![](/img/trans.png)
[英]How to call C++ method from Objective-C Cocoa Interface using Objective-C++
[英]Using a method in Objective-C cocoa
我遇到了一些非常基本的問題。 我想叫這個動作:
- (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:
內容並不重要。
你以錯誤的方式調用了changeGreeting函數
你應該這樣稱呼它
[self changeGreeting:nil];
或者,如果您想跟蹤textField中的內容
[self changeGreeting:theTextField];
如果您需要基於textField進行某些處理,發件人將獲取theTextField作為參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.