問題タブ [ibaction]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2325 参照

iphone - 'NSInvalidArgumentException' UIButton IBAction エラー

ビューに動作を拒否するボタンがあります。X-Code の空白のデフォルト ビュー アプリケーションで作業しましたが、どのアプリケーションでも動作せず、代わりに次のエラーが表示されます。

キャッチされていない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: '*** -[UIViewController showVicInfo:]: 認識されないセレクターがインスタンス 0x3c084f0 に送信されました'

デバッガーも役に立ちません。ボタンをファイルの所有者に接続することも確認しました (その逆ではありません)。以下は、アクションのコードです。そして、ブレークポイントがそこに到達していないため、それがアラート ビューではないことはわかっています。

約.h

約メートル

更新:参考までに、これがボタンの作成方法です。

  1. 新しいビューを作成しました (File>New File>UIViewControllerSubclass w/XIB for interface)
  2. -(IBAction)showInfo:(id)sender; を追加しました。about.hへ
  3. 追加した
  4. -(IBAction)showVicInfo:(id)sender { UIAlertView *myAlert = [[UIAlertView alloc] initWithTitle:@"インターネット接続がありません" メッセージ:@"iFirelert が機能するには、WiFi またはセルラー ネットワーク経由のインターネット接続が必要です。" delegate:self cancelButtonTitle:@"OK, ありがとう" otherButtonTitles:nil]; [myAlert ショー]; [myAlert リリース]; } ~ about.m
  5. Interface Builder で About.xib を開き、長方形のボタンをビューにドラッグします。
  6. ボタンを -showVicInfo アクションに接続するには、ctrl キーを押しながらファイルの所有者プロパティのボタンをクリックします (その逆ではありません)。
  7. ファイルの所有者が「about」クラスに設定されていることを確認しました。

そして、X-Codeで失敗してビルドおよび実行します。

更新 2: OK、既存のプロジェクトの設定または何かである必要があることがわかりました。別の X-Code プロジェクトで動作する 2 つのクラス ファイルと XIB ファイルをコピーしましたが、ボタンも同じものをスローします既存のアプリのエラー。

0 投票する
3 に答える
1734 参照

iphone - InterfaceBuilderを効率的に使用する

私はiPhoneとObjectiveCに不慣れです。私は何時間も何時間もかけて文書を読み、物事がどのように機能するかを理解しようと努めてきました。私はRTFMを持っているか、少なくともその過程にあります。

私の主な問題は、イベントが渡される場所を指定する方法を理解したいということです。それを実行できる唯一の方法は、デリゲートを指定することですが、IBにはもっと簡単で迅速な方法があると確信しています。

だから、例。20の異なるビューとビューコントローラーと1つのMyAppDelegateがあるとしましょう。これらのさまざまなXibファイルをすべてIBでビルドし、ボタンやテキストフィールドなどをいくつでも追加して、それらすべてがMyAppDelegateオブジェクトで何らかのイベントを生成するように指定できるようにしたいと思います。これを行うために、IBのリストビューの各ViewControllerにMyAppDelegateオブジェクトを追加しました。次に、XCodeのMyAppDelegateでIBActionメソッドを作成し、IBに戻って、すべてのイベントを各XibファイルのMyAppDelegateオブジェクトにリンクしました。

しかし、実行しようとすると、読み取り例外が発生してクラッシュしました。

私の推測では、各Xibファイルは、実行時に実際に作成される最終的なMyAppDelegateアドレスとは関係のないMyAppDelegateオブジェクトポインターを配置しています。

だから私の質問は...どうすればこれを行うことができますか?!!!

0 投票する
6 に答える
840 参照

objective-c - Cocoa では、IBAction が完全に実行されるまでテキストフィールドが表示されないのはなぜですか?

内部にいくつかの単純なコードを含む IBAction があります。

'textfield' は nib ファイルの NSTextField で、-'dolengthyaction' は実行が完了するまでに約 1 分かかる関数です。

私の質問は、「dolengthyaction」の実行が完了するまでテキストフィールドが表示されないのはなぜですか? 長いアクションが始まる前に明らかにしてほしい。これは固有の問題ですか、それとも私のコードに何か問題がありますか? (または私のコードの別の部分で?)

私はまだプログラミングが得意ではないので、言葉遣いや書式設定が間違っていたら申し訳ありません。

編集: この IBAction と -dolengthyaction 以外にはあまりありません...

私が実際にやりたいことは、アクションの実行中にラベルを表示し、完了したら非表示にすることだけです。

基本的にこれが意味することは、現在まったく表示されていないということです。

実際には、-doLengthyAction では sleep(10) ではなく、約 50 Mb の素材をコピーする NSFileManager 操作です。コードはかなり長いですが、投稿したい場合は投稿できます。sleep() でテストしましたが、どちらも機能しません。

0 投票する
2 に答える
1969 参照

uibutton - IBAction UIButton と EXC_BAD_ACCESS

.h ファイルに書き込みます

そしてM

内部でもタッチアップして接続しますが、プログラムを実行するとエラーが表示され、このメッセージが表示されます

-[UITouchData openShuffleForm]:認識できないセレクターがインスタンス 0x391cc20 に送信されました

** なぜだかわからないのですが?

0 投票する
1 に答える
770 参照

iphone-sdk-3.0 - UIViewController が IBAction から AppDelegate の NSArray にアクセスすると、プログラムがクラッシュします

AppDelegate 内の配列にアクセスしようとしている UIViewControllers がいくつかあります。IBAction UIButton を使用し、そのメソッドで AppDelegate にアクセスすると、プログラムは黙って終了します。出力またはデバッガーには何も表示されず、停止するだけです。何度か実行すると、アレイに正しくアクセスできていないことがわかります。

この問題を調査するために、非常に基本的なアプリを作成しました。

AppDelegate.h で、配列のプロパティを宣言して設定しました

AppDelegate.m で、NSArray を合成して初期化しました (画像が Resources フォルダーに追加されていることも確認しました)。

UIViewController.h で、クラスを追加し、ヘッダー ファイルをインポートし、宣言し、AppDelegate ポインターのプロパティを設定しました。

MyAppDelegate *mainDelegate; IBOutlet UIButton mybutton; @property (非アトミック、保持) MyAppDelegate mainDelegate; @property (非アトミック、保持) UIButton *mybutton; -(IBAction) doSomething;`

UIViewController.m で、AppDelegate を合成して割り当てます。AppDelegate から NSArray の同じカウントをログに記録する IBAction をセットアップしました。

NSLog(@"ds images size:%i",[mainDelegate.images count]); }

NSArray のサイズは、作成時に AppDelegate に出力し、最初に AppDelegate ポインターを割り当てたときに ViewController に出力し、次に IBAction の結果として出力します。

ボタンを押すたびに、プログラムが停止することがわかりました。3 回目にボタンを押すと、IBAction が実行されましたが、配列サイズが 8 ではなく 1 として出力されました。また、スタック トレースなどを取得しないのはなぜですか。デバッガーは黙って終了します。

助けてくれてありがとう!

3 回の実行に対するデバッガー コンソールの出力:

0 投票する
2 に答える
535 参照

keyboard - UIButtonが押された後、UITextfieldがフォーカスされています

テキストを入力するための UITextfield があります。ボタンは機能をトリガーします。IBAction の完了後、UITextfield は再びフォーカスされます。IBAction の後、キーボードを非表示にしたい。ボタンの IBAction により、キーボードが消え (UIAlert を表示しています)、IBAction の後、UITextfield のフォーカスと共にキーボードが再びポップアップします。IBAction の後に UITextfield がフォーカスされるのを防ぐことは可能ですか?

0 投票する
1 に答える
494 参照

cocoa - IBActionsの限られた範囲を回避する

NSCollectionViewがあり、ビューはラベルとNSButtonを持つNSBoxです。NSButtonをダブルクリックまたはクリックして、NSCollectionViewItemの表現されたオブジェクトでアクションを実行するようにコントローラーに指示したいと思います。アイテムビューはサブクラス化されており、コードは次のとおりです。

私が遭遇した問題は、IBActionとして、-startのスコープ内にあるのは、IBにバインドされているものだけなので、delegateとviewItemであるということです。これは、表現されたオブジェクトを取得してデリゲートに送信できないことを意味します。

この限られた範囲を回避する方法、または表現されたオブジェクトを取得するためのより良い方法はありますか?

ありがとう。

0 投票する
2 に答える
24424 参照

ios - コード内からIBActionを呼び出す最良の方法は何ですか?

たとえば、InterfaceBuilderのUIButtonに接続されているIBActionがあるとします。

-私のコードでは、たとえば別のメソッドで、そのIBActionを呼び出すための最良の方法は何ですか?

このように呼び出そうとすると、エラーが発生します。

しかし、私がそれをこのように呼ぼうとすると(少し浮気していると思います)、それはうまくいきます:

それを正しく呼び出すための適切な方法は何ですか?

0 投票する
1 に答える
1398 参照

iphone - iPhone:「認識されないセレクターがインスタンスに送信されました」エラー

ramin.firoozye.comの「iPhoneのセミモーダル(透過)ダイアログ」のコードを使用して、アプリに部分的なオーバーレイモーダルを実装しようとしています。オーバーレイ機能は機能し、モーダルをビューにスライドさせますが、モーダルのコントローラーからIBActionを呼び出すと、「認識されないセレクターがインスタンスに送信されました」というクラッシュが発生します。

そのコードを分離して基本機能を再作成しましたが、同じエラーが発生します。私が話していることを確認するには、ここからテストプロジェクトをダウンロードできます。

私はここで単純な何かを見逃していると確信しています。どんな助けでも大歓迎です。

0 投票する
3 に答える
2818 参照

iphone - アクションから呼び出されていないときにIBActionメソッドを使用しますか?

ユーザーのアクションから実際に呼び出されていないときにIBActionを使用するときに問題はありますか?

あなたがのような行動をとるなら

次のように、クラス内から呼び出すことができます。

@ "x"は何もしません、送信者のために記入するだけです。

(id)senderなしで実際にIBActionメソッドを作成できます

そして、ユーザーのアクションとコード内の両方から呼び出しますが、インターフェースから有用な送信者情報を取得することはできません。コードから呼び出すときに、送信者に入力する「正しい」方法は何ですか?また、コード内から呼び出されたときに送信する送信者情報を作成できますか?

ただそれを理解しようとしています。