0

button1がNSPopUpButtonであると仮定するbutton1に接続されている仮定メニューが表示され、追跡されます。

[[button1セル]dismissPopUp]---dismissPopUpが認識されません。

dismissPopUpメソッドが認識されないのはなぜですか?

ありがとう

4

1 に答える 1

0

dismissPopUpNSCell はメッセージに応答しないためです。

実行時にこれが例外として発生する場合button1は、本当にポップアップ ボタンであることを確認してください。つまり、そのアウトレットが IB の正しいオブジェクトに接続されているか、適切なオブジェクトが割り当てられていることを確認してください。コードで作成しました。後者の場合、デバッガを使用して変数を調べます。

これがコンパイラからの単なる警告である場合は、おそらくcellNSControl (NSPopUpButton のグランド スーパークラス) のメソッドであり、NSCell を返すように型指定されているためです。コンパイラは、この特定のコントロールが NSPopUpButtonCell を返すことを知る方法がありません。cell解決策は、メッセージの結果を as 型の変数に代入し、その変数のオブジェクトにメッセージをNSPopUpButtonCell *送信することです。dismissPopUp

NSPopUpButtonCell *cell1 = [button1 cell];
[cell1 dismissPopUp];

それでも警告が表示される場合は、式の前に明示的なキャストを追加する必要があります[button1 cell]

于 2010-05-27T08:41:40.553 に答える