2011-10-26 213 views
1

我有一個彈出按鈕,它以編程方式加載了5個選項,如果選擇了特定的選項,可以說「追加文件名的末尾」,那麼我的更新功能需要導致一個小的流行在彈出的窗口中顯示textField並顯示保存和取消按鈕。我不知道該怎麼做。 我能夠得到一個很好的NSAlert例子,但它並不需要我知道的textField。 是否有對話框類或其他模式,我應該使用或者我應該嘗試創建第二個筆尖?在任何一種情況下,我都不知道該怎麼做,所以一個好的例子或者教程會很棒。彈出樣式對話框

感謝

回答

5

我只是四處搜尋,並沒有發現顯示用的NSTextField,按鈕的NSAlert並得到用戶剛剛輸入的文本的方法的人。這是here, on the Macrumors forums, slightly old..

從本質上講,你可以只是去:

NSString *prompt = @"Please enter text to append to file name:"; 
NSString *infoText = @"What happens here is..."; 
NSString *defaultValue = @"Default Value"; 

NSAlert *alert = [NSAlert alertWithMessageText: prompt 
           defaultButton:@"Save" 
           alternateButton:@"Cancel" 
            otherButton:nil 
        informativeTextWithFormat:infoText]; 

NSTextField *input = [[NSTextField alloc] initWithFrame:NSMakeRect(0, 0, 200, 24)]; 
[input setStringValue:defaultValue]; 
[alert setAccessoryView:input]; 
NSInteger button = [alert runModal]; 
if (button == NSAlertDefaultReturn) { 
    [input validateEditing]; 
    NSLog(@"User entered: %@", [input stringValue]); 
} else if (button == NSAlertAlternateReturn) { 
    NSLog(@"User cancelled"); 
} else { 
    NSLog(@"bla"); 
} 

該代碼會顯示NSAlert,可定製的提示,信息文本和默認值對的NSTextField,再加上記錄用戶輸入的內容,他們是否取消等

希望工程! :)

+0

我試過這段代碼,它看起來很專業,即使它是舊的。兩件事我沒有得到,雖然是相對於打開它的窗口的位置設置(我讀了一篇文章,說需要移動到一個「表」)和框的大小設置(重要性不那麼重要) – Miek