2009-07-04 46 views
0

我正在創建一個應用程序,它必須與服務器數據進行交互,然後相應地顯示數據庫中的結果。我正在編寫Cocoa中的客戶端應用程序。Cocoa中的數據庫結果

示例:用戶登錄到Web應用程序。他們有一些提交網絡報告的選項。選擇:單線和多線。他們可以選擇這些字段中有多少字段用於他們想要輸入的各種變量。然後保存在MYSQL數據庫中供以後使用。

示例(第2部分):客戶端應用程序獲取MYSQL數據庫中的數據,然後顯示它。問題是它是可變數量的字段和可變數量的類型。

換句話說,如果我們想要顯示NSSecureTextField,NSTextField等,然後在屏幕上顯示它,數據庫就會基本上存儲。正如我上面指出的那樣,問題是允許他們選擇他們想要的元素的種類和數量 - 所以我不太清楚如何將其轉換爲代碼。

只是爲了澄清,我不是試圖構建在線界面生成器。只需一種在線方式來輸入具有可變字段數量的數據以及各種類型的這些字段。我創建了在線系統,但我在客戶端部分遇到困難。

任何幫助將不勝感激!

回答

1

我不確定我明白你在問什麼。計算用戶需要多少個NSTextField並且稍後使用()循環來創建它們是不是很簡單?你可能會想跟蹤的文本框,所以我可能會做這樣的:

NSMutableDictionary * interfaceElements = [[NSMutableDictionary alloc] init]; 

for (NSInteger i = 0; i < numberOfTextFields; ++i) { 
    //this is just to make a frame that's indented 10px 
    //and has 10px between it and the previous NSTextField (or window edge) 
    NSRect frame = NSMakeRect(10, (i*22 + (i+1)*10), 100, 22); 
    NSTextField * newField = [[NSTextField alloc] initWithFrame:frame]; 
    //configure newField appropriately 
    [[myWindow contentView] addSubview:newField]; 
    [interfaceElements setObject:newField forKey:@"someUniqueIdentifier"]; 
    [newField release]; 
} 

課程的詞典不會是本地的這種方法,但我認爲你的想法。

或者,您可能會強制NSMatrix爲您自動佈局佈局。

如果您正在爲iPhone編寫客戶端應用程序,那麼我強烈建議您尋求Settings Application Schema reference的靈感。如果您不熟悉這一點,下面簡要介紹一下:iPhone允許開發人員將其偏好區域從實際應用移至「設置」應用。這是通過創建設置包並以非常特定的方式構建plist來完成的。 Settings.app然後發現plist,解析它,並根據它包含的定義構建一個接口。你可以做開關,文本框(甚至是安全的),滑塊,組和其他幾種界面元素。

+0

Dave: 感謝您的回覆。對你來說可能是微不足道的,但我之前沒有使用過除Interface Builder之外的其他任何東西。我認爲當涉及到我的問題時,你會發現,「動態」顯示NSTextFields等等。感謝您的意見,我認爲我基本上得到了代碼中正在發生的事情......但是,如何將NSMutableDictionary繪製到屏幕上呢?可能是一個非常簡單的問題(我對此表示歉意),但我對整個思維方式都比較陌生。這隻適用於桌面,現在,但是我感謝你與iPhone的聯繫。 – PF1 2009-07-05 18:36:57