1
我希望創建一個沒有完全由NSTextView組成的nib文件的窗口。以編程方式使用NSTextView創建窗口
它應該作爲一個彈出窗口,但仍然是無模式的。
到目前爲止,我有兩個屬性:
@property (strong,nonatomic) NSWindow *consoleWindow;
@property (strong,nonatomic) NSTextView* textView;
這裏是我的實現是什麼樣子:
-(void)doubleAction:(NSOutlineView*)sender
{
if(self.currentLogEntry == nil)
{
return;
}
self.consoleWindow = nil;
self.textView = nil;
NSRect windowRect = NSMakeRect(10.0f, 10.0f, 500.0f, 400.0f);
self.consoleWindow = [[NSWindow alloc] initWithContentRect:windowRect
styleMask:(NSResizableWindowMask | NSClosableWindowMask | NSTitledWindowMask)
backing:NSBackingStoreBuffered defer:NO];
self.textView = [[NSTextView alloc] initWithFrame:[[self.consoleWindow contentView] frame]];
[self.textView setString:self.currentLogEntry.value];
[self.consoleWindow setContentView:self.textView];
[self.consoleWindow makeKeyAndOrderFront:nil];
[self.consoleWindow makeFirstResponder:self.textView];
NSLog(@"Double clicked");
}
事情已經被連接起來,所以我有條目列表,每當我雙擊在一個條目上,所選條目被加載到self.currentLogEntry
中,然後這個方法被觸發。它的作品,但如果我關閉窗口,並嘗試打開另一個入口我得到Thread 1:EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
我認爲這與窗口沒有正確釋放有關,但我已經嘗試了一些東西,如設置屬性爲零,無論何時程序進入doubleAction(就像你在代碼中看到的那樣),但這沒有幫助。
任何幫助解決這個問題,非常感謝。
什麼你尋找什麼樣的幫助?你有什麼問題? – Abizern
對不起,忘了實際要求任何東西 – Niclassg
如果您不使用筆尖,那麼就沒有必要將該物業設置爲IBOutlet。 – Abizern