1

NSStatusItemを次のように作成しました。

statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];
[statusItem setTitle:@"DS"];
[statusItem setHighlightMode:YES];
[statusItem setAction:@selector(StatusClicked:)];
[statusItem setTarget:self]; 

customview付きのポップオーバーもあります。ビューにテキストフィールドがあります:http://d.pr/i/CWbr

私のポップオーバーは次のように表示されます:

- (void)StatusClicked:(id)sender {
    [self.popover showRelativeToRect:[sender bounds] ofView:sender preferredEdge:NSMaxYEdge];
}

デバッガーから、ここにクラスsenderのインスタンスがあることがわかりました。NSStatusBarButton

問題は、ポップオーバーがポップすると、テキストフィールドに入力できない場合、非アクティブに見えることです: http ://d.pr/i/q18U

ボタンは機能しています。

問題は私が渡す見解にあると思いますofView:。私はそれを次のようなウィンドウのコントロールに変更しようとしました:

 [self.popover showRelativeToRect:[sender bounds] ofView:self.postText preferredEdge:NSMaxYEdge];

そして、textfieldがアクティブになりました(http://d.pr/i/DmTz)が、なぜこれが役立つのかわかりません。

メニューからポップしたときにポップオーバーテキストフィールドが非アクティブになるのはなぜですか?ボタンが機能するのはなぜですか?テキストフィールドをアクティブにするにはどうすればよいですか?

PS私のアプリはApplication is agent (UIElement)

4

1 に答える 1

0

質問を書いた後、これはキーウィンドウに関連している可能性があると思いました。そこで、この接続を検索して、次の質問を見つけました。編集可能な動作が設定されていても、NSPopoverでNSTextFieldを編集できない

これは私の質問に完全に答えました。バグのようです。

于 2013-03-24T14:05:16.977 に答える