簡體   English   中英

使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM