2012-02-03 159 views
1

我想通過編程創建NSTextField。我是Mac App開發新手。
任何人都可以幫助我嗎?如何以編程方式創建NSTextField?

更新:
我想這個代碼

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification 
{ 
    NSView *myView = [[NSView alloc] init]; 
    NSRect frameRect = NSMakeRect(20,20,100,140); 
    NSTextField *myTextField = [[NSTextField alloc] initWithFrame:frameRect]; 
    [myView addSubview:myTextField]; 
} 

這什麼都不做。如果我在任何地方都錯了,請糾正我。

謝謝。

回答

1

它看起來像你創建一個NSTextField OK,但你不能在視圖層次將它添加到任何地方可見。您的應用程序可能包含一個或多個NSWindow實例;如果您希望某個視圖出現在特定窗口中,則應該將其添加爲該窗口內容視圖的子視圖。

+0

我正在爲此而努力。但我不知道如何在我的窗口中添加視圖。我的意思是''[[self window] addcontentview:我的視圖]'但是找不到方法。你能幫我嗎。 – iUser 2012-02-03 13:47:36

+2

不要替換內容視圖,除非您希望您的文本字段填充整個窗口。相反,將您的文本字段添加到內容視圖(或其子視圖),如[self.window.contentView addSubview:myTextField]。 – hoshi 2012-02-04 01:30:34

+0

@hoshi:在我的情況下什麼都不做。不知道是什麼問題.. !!! – iUser 2012-02-04 11:50:22

2

以可編程方式創建UI元素在Cocoa中非常簡單。

它包括兩個步驟:

  1. 創建視圖和幀設置爲它。

  2. 將它作爲子視圖添加到任何超級視圖中。

以下代碼片段可以幫助您更好地理解。

NSRect frameRect = NSMakeRect(20,20,40,40)// This will change based on the size you need 

NSTextField *myTextField = [[NSTextField alloc] initWithFrame:frameRect]; 

[myView addSubView:myTextField]; 
+0

感謝您的快速回復。你能幫我多點嗎?我更新了我的問題。請看一下。 – iUser 2012-02-03 12:56:00