1

私は XCode 4 で構築された非常に単純な Mac アプリを持っています (今のところ空白のフォームのみ)。これで、Interface Builder を介してボタンを追加し、メソッドを AppDelegate に追加しました。

-(IBAction) btnScanClicked
{
    NSLog(@"Hello!");
}

アプリを起動すると、次のメッセージが表示されます。

アクション btnScanClicked: をクラス AppDelegate のターゲットに接続できませんでした

これは、AppDelegate にイベント ハンドラーを追加できないということですか? それらを他にどこに置くことができますか? Interface Builder でどのように設定しますか?

4

1 に答える 1

4

問題は、アクション メソッドを適切に宣言していないことです。定義を次のように置き換えます。

-(IBAction) btnScanClicked:(id)sender {

エラー メッセージが、接続できなかったと述べていることに注意してくださいbtnScanClicked:。最後のコロンは句読点ではありません。メッセージがパラメータを取ることを示しています。

アクション メソッドとは異なりUIKit、次の形式にする必要があります。

- (void)methodName:(id)sender

IBActionに解決されるだけvoidですが、コンテキストのドラッグによってフックできるメソッドであることを Interface builder に示します。

于 2012-11-24T17:32:32.780 に答える