2014-01-31 35 views
0

我想能夠創建一個對話框,其中有2個文本框。 我可以創建文本框1與下面碼的對話框,如何在Carbon中創建多個文本字段?

const void* keys[] = 
{ 
kCFUserNotificationAlertHeaderKey, 
kCFUserNotificationAlertMessageKey, 
kCFUserNotificationAlternateButtonTitleKey, 
kCFUserNotificationTextFieldTitlesKey 
}; 

const void* values[] = 
{ 
titleStr, 
messageStr, 
CFSTR("Cancel"), 
labelStr 
}; 

CFDictionaryRef elements = CFDictionaryCreate(0, keys, values, sizeof(keys)/sizeof(*keys), &kCFTypeDictionaryKeyCallBacks,&kCFTypeDictionaryValueCallBacks); 
      CFShow(elements); 

當添加多一個鍵 - 值對,例如kCFUserNotificationTextFieldTitlesKey與一些CFSTR(「」),我沒有看到任何東西在對話框中得到更新。

那麼我們怎麼能有多個文本框,例如用戶名/密碼,在CFDitionaryCreate()中。

我在文檔中看到,我們可以有一個數組的多個titleKeys,但我不知道該怎麼做。

我能夠在對話框kCFUserNotificationProgressIndicatorValueKey中添加一個字段,但無法再次添加相同的密鑰。

我相對比較新的OSX和碳API(我知道這已被棄用) 我很感激,如果我指出正確的資源或例子,可以幫助我實現這一點。

此外,使用可可不是一個選項。我需要用碳來實現這一點。

回答

1

與關鍵kCFUserNotificationTextFieldTitlesKeykCFUserNotificationTextFieldValuesKey關聯的值是一個字符串數組:

CFTypeRef values[2] = { CFSTR("one"), CFSTR("two") }; 
CFArrayRef valArray = CFArrayCreate(NULL, values, 2, &kCFTypeArrayCallBacks); 

順便問一下,你正在使用的核心基礎,而不是碳。並非每個基於C的API都是Carbon。

+0

工作,謝謝! 你會推薦任何學習Core Foundation和Carbon的參考書,我知道它已被棄用,我仍然想要去參考。 – 2am

+0

@凌晨2點,我不知道任何關於最近的碳素材料的書籍,比如HIView。我假設你使用的是Xcode 3.2.6,因爲更新的Xcode無法處理碳筆尖。在Xcode 3.2.6 doc閱讀器中,請務必閱讀HIView編程指南和Carbon Event Manager編程指南。 – JWWalker

相關問題