1

私は、単一のウィンドウを備えたまったく新しいxcode 4 cocoaプロジェクト(iosではない)を持っています。そのウィンドウのビューについて、クラスを「myView」に変更し、myView。[hm]を作成しました。メインウィンドウのビューにプッシュボタンを追加しました。ボタンからmyView.mのソースコードにcontrolキーを押しながらドラッグすると、「アクションの作成」がポップアップ表示されません。私が期待するように。ただし、controlキーを押しながら「AppDelegate.m」にドラッグしようとするとポップアップします。したがって、コントロールドラッグをmyView.mに機能させるには、何かの「所有者」を変更する必要があると思います。

私がそれをどのように行うか、または私が概念的に間違っていることについての提案は大歓迎です。

ありがとう、

チャーリー

4

3 に答える 3

1

ドラッグ先によって異なります。@implementationアウトレット(プロパティ)またはアクションメソッド宣言を、または.mファイルの最上位に挿入することはできません。それらを。内に挿入する必要があります@interface

.mファイルの先頭、のすぐ上で、の@implementation書き込みを開始@interfaceし、クラス拡張子の補完を取得します。次のようになります。

@interface MyView ()

@end

Ctrlキーを押しながら空でない2行の間にドラッグし、そこにアウトレットまたはアクション宣言を挿入します。

したがって、コントロールドラッグをmyView.mに機能させるには、何かの「所有者」を変更する必要があると思います。

あなたがどこかで読んで考えていることは、ファイルの所有者のクラスを変更していると思います。まだ正しいクラスでない場合にのみ変更する必要があります。その場合でも、これは、そのオブジェクトがctrl-dragの一方の端またはもう一方の端にある場合にのみ関係します。他のオブジェクトから別のオブジェクトのクラスにドラッグしているため、ファイルの所有者は関与しません。したがって、この問題を解決するために変更できる、または変更する必要のあるオブジェクトはありません。

于 2012-12-30T06:38:20.313 に答える
1

あなたは2つの間違いをしています。

最初に : 公開したい場合は .h に Ctrl+Drag を実行する必要があります。.m で実行すると非公開になります。.m ではできないので .h で試してみてください。

2 番目: オブジェクトのクラスを myView に変更します。デフォルトでは AppDelegate になります。そして、ファイルの所有者クラスが何であるかを確認してください。

于 2012-11-16T03:36:58.987 に答える
0

次のアプローチでは、アシスタント エディターを使用しません。

最初にアクションを宣言します

@interface myView : NSView
//...
- (IBAction)myAction:(id)sender;
//...
@end

または代わりにmyView.hクラス拡張で

@interface myView ()
//...
- (IBAction)myAction:(id)sender;
//...
@end

myView.m

Interface Builder で、ボタンからmyView

ここに画像の説明を入力

を選択しますmyAction:

于 2012-12-30T06:47:41.140 に答える