button1がNSPopUpButtonであると仮定するbutton1に接続されている仮定メニューが表示され、追跡されます。
[[button1セル]dismissPopUp]---dismissPopUpが認識されません。
dismissPopUpメソッドが認識されないのはなぜですか?
ありがとう
button1がNSPopUpButtonであると仮定するbutton1に接続されている仮定メニューが表示され、追跡されます。
[[button1セル]dismissPopUp]---dismissPopUpが認識されません。
dismissPopUpメソッドが認識されないのはなぜですか?
ありがとう
dismissPopUp
NSCell はメッセージに応答しないためです。
実行時にこれが例外として発生する場合button1
は、本当にポップアップ ボタンであることを確認してください。つまり、そのアウトレットが IB の正しいオブジェクトに接続されているか、適切なオブジェクトが割り当てられていることを確認してください。コードで作成しました。後者の場合、デバッガを使用して変数を調べます。
これがコンパイラからの単なる警告である場合は、おそらくcell
NSControl (NSPopUpButton のグランド スーパークラス) のメソッドであり、NSCell を返すように型指定されているためです。コンパイラは、この特定のコントロールが NSPopUpButtonCell を返すことを知る方法がありません。cell
解決策は、メッセージの結果を as 型の変数に代入し、その変数のオブジェクトにメッセージをNSPopUpButtonCell *
送信することです。dismissPopUp
NSPopUpButtonCell *cell1 = [button1 cell];
[cell1 dismissPopUp];
それでも警告が表示される場合は、式の前に明示的なキャストを追加する必要があります[button1 cell]
。