2011-09-18 41 views
0

我試圖在NSMenu(附加到菜單欄中的NSStatusItem)內創建登錄窗口。NSMenu內的NSTextField - 不與預期相互作用或看起來如預期

我在菜單中有空白NSMenuItems。然後,我將菜單項的視圖設置爲NSTextFields。

它結束了看起來像這樣:

enter image description here

的文本框的交互也奇怪。點擊它們只會讓他們大約30%的時間專注(這樣你可以輸入文本)。

所以,我想知道:

- 如何做我做這些看起來更好?我如何控制填充等?

- 上面描述的點擊行爲是什麼?打字只有30%的時間。

- 是否有任何其他應用程序將這樣的狀態欄項目用作字段?我想看看。

+2

不要這樣做吧。這是非常糟糕的UI設計。菜單並不意味着要採取鍵盤的重點。 –

+0

您是否在菜單欄或使用NSMenu登錄界面時抱怨?例如,Spotlight專爲獲取鍵盤焦點而設計...... – cksubs

+0

這並不意味着您應該嘗試做同樣的事情。 Spotlight可以經常被調用,並且沒有其他系統範圍的用戶界面;用戶不太可能重複登錄他/她的帳戶。 –

回答

2

要回答你的問題的實際,而不是討論UI設計...

備選:
考慮使用MAAttachedWindow項目從馬特·蓋梅爾:
下載use an MAAttachedWindow with an NSStatusItem例子。

鏈接:
http://mattgemmell.com/source/index.html

快速創建例如: Screenshot Login Window

使用的控制:
- 的NSTextField(衆:None DrawsBackground:No TEXTCOLOR:White
- NSButton(表圈:Recessed
- NSLabel(TEXTCOLOR:White

+0

其他[鏈接](http:// mattgemmell。com/2008/03/04/using-maattachedwindow-with-an-nsstatusitem /)到原始博客文章。 – Anne

+0

謝謝!看起來不錯。我將不得不決定是使用這個還是做一個基於NSWindow的登錄。 – cksubs