單擊某個按鈕時,我想顯示帶有電子郵件+密碼提示的工作表,並提供保存和取消選項。用戶界面全部設置完畢,操作已到位,表單出現並按預期取消。問題是我無法在運行時編輯任何NSTextFields;它們顯示爲禁用,並且在打開表單時每次按鍵都會播放操作系統錯誤聲音。我讀到的SO UIActionSheet是合適的,但這不是一個iOS應用程序。無法在運行時在工作表中編輯NSTextField
textfields已啓用,並且以前一直在另一個面板中工作。我確定IBAction鏈接完好無損,但我甚至不確定如何排除故障。
如何處理表單會導致健康的NSTextField拒絕輸入?
// show the sheet
-(IBAction)showAccount:(id)sender {
[NSApp beginSheet:accountWindow
modalForWindow:prefsWindow
modalDelegate:self
didEndSelector:NULL
contextInfo:NULL];
}
// cancel/hide the sheet
-(IBAction)cancelAccount:(id)sender {
[NSApp endSheet:accountWindow];
[accountWindow orderOut:nil];
}
編輯:我剛剛發現,我可以右鍵單擊並將文本粘貼到每個字段中,但我無法選擇或刪除。看起來NSTextFields沒有得到關注,也沒有像往常一樣接收鍵盤輸入。我也忘記提及我的Save按鈕調用並正確執行其相關的方法。
這對我來說很有效,並且使它更容易,因爲我由於標題欄而不必重新編碼。 – evilgoldfish
這是更好的答案。我不知道他們爲什麼將這個作爲無標題窗口的默認行爲,並且是通過委託來控制的,但是我用這個方法使用了一個子類,並且工作正常。 –
這個*可以*在應用程序中通過一個類別被默認設置。看到[這個答案](http://stackoverflow.com/questions/7214273/nstextfield-on-nspopover) – cbedrosian