我試着學習Xcode,Cocoa,Objective C.今天我以爲我打算做一個簡單的應用程序使用Nac文件瀏覽器,讀取文件並將其顯示在NSTevtView中。簡單的文件閱讀器不會工作
一切都像是想工作,但文件從不顯示。如果我調試它,它顯示我的字符串有文件內容,但我不能讓它顯示到TextView。
這裏是我的代碼,OpenUp.h和OpenUp.m
#import <Foundation/Foundation.h>
@interface OpenUp : NSObject
{
NSString *reader;
IBOutlet NSTextField *mainField;
}
@property(readwrite,copy)NSString *reader;
- (void)awakeFromNib;
- (IBAction)openExistingDocument:(id)sender;
@end
//OpenIt.m
#import "OpenUp.h"
@implementation OpenUp
@synthesize reader;
- (id)init
{
self = [super init];
if (self) {
// Initialization code here.
}
return self;
}
- (IBAction)openExistingDocument:(id)sender{
NSOpenPanel* panel = [NSOpenPanel openPanel];
[panel retain];
// This method displays the panel and returns immediately.
// The completion handler is called when the user selects an
// item or cancels the panel.
[panel beginWithCompletionHandler:^(NSInteger result){
if (result == NSFileHandlingPanelOKButton) {
NSURL* theDoc = [[panel URLs] objectAtIndex:0];
NSLog(@"%@", theDoc);
//open the document
NSError *error;
self.reader = [[NSString alloc] initWithContentsOfURL: theDoc encoding:NSUTF8StringEncoding error:&error];
NSLog(@"%@",error);
}
// Balance the earlier retain call.
[panel release];
}];
[mainField setStringValue: self.reader];//this should display the contents of the string
}
- (void)awakeFromNib {
self.reader = @"";//initialize reader
}
@end
我不知道如果我做錯了內存分配,或者一個字符串從文件中讀取不會使用這個窗口。我已經嘗試了NSScrollViewer和NSTextField 所有的東西都編譯並且行爲像它想要的那樣只是不顯示字符串。
任何幫助,非常感謝。 Mike
如果我右鍵單擊Main.xib中的對象,它將顯示OpenUp對象和mainField TextField之間存在連接。當我運行該應用程序時,它會在文檔顯示時掛起(旋轉圓圈) – Miek
我重新連接了xib文件中的TextField並開始工作。謝謝 – Miek