NSViewControllerでnibをロードした後…ペン先のNSButtonにアクセスするにはどうすればよいですか?
-
05-07-2019 - |
質問
セカンダリペン先のNSButtonにフックされたIBOutletsでNSViewControllerをサブクラス化しました。
NSNSViewControllerにはIBOutletsがあるため、コントローラーを介してこれを行うと想定しました。
//this part works great
NSViewController *viewController = [[toDoViewController alloc] initWithNibName:@"toDoView" bundle:nil];
NSView *newView = [viewController view];
newMenuItem.view = newView;
//this part not so much
[viewController [toDoButton setTitle:someStringHere]];
ここからどこへ行くかについてのポインタはありますか?
追加して編集:toDoViewControllerクラス-
@interface toDoViewController : NSViewController {
IBOutlet NSButton *checkBoxButton;
IBOutlet NSButton *toDoButton;
}
@end
解決
[viewController [toDoButton setTitle:someStringHere]];
インタラクティブフィクションインタープリターが言うように、“それは動詞が欠落しているようです。”
レシーバー( viewController
)、完全なメッセージ式( [toDoButton setTitle:…]
)、および括弧がありますが、欠落していますセレクター。そのため、これは有効なメッセージ式ではありません。
次の2つの可能性があります。
- View Controllerにメッセージを送信し、
setTitle:
の結果を引数として渡して、セレクタを忘れた場合。 NSButtonのsetTitle:
は何も返さないので、これはありそうにないと思います。 - View Controllerからボタンを取得し、ボタンに
setTitle:
メッセージを送信します。このView Controllerが、toDoButton
プロパティを追加したNSViewControllerのサブクラスのインスタンスであると仮定すると、[[viewController toDoButton] setTitle:someStringHere]
または< code> [viewController.toDoButton setTitle:someStringHere] 。
所属していません StackOverflow