我有在NSMutableArray裏與名searcharray,這等於陣列與NSTableView的是connected.And我寫了一個方法將項目添加到TableView中只是通過發送的NSMutableArray我的方法搜索行動。 問題是,搜索後,如果我刪除了我在SearchField中輸入的內容,並且SearchField爲空,編譯器不會覺得它是空的,我的TableView也變空了,但是由於我的代碼必須使用來自searcharray的數據。 這是我的代碼:NSTableView的和SearchField
#import "myTableViewAppDelegate.h"
@implementation myTableViewAppDelegate
@synthesize window;
@synthesize searcharray;
-(void)addItems:(NSMutableArray *)ar{
array = ar;
[array retain];
[tableView reloadData];
}
- (int)numberOfRowsInTableView:(NSTableView *)tableView{
return (int)[array count];
}
- (id)tableView:(NSTableView *)tableView
objectValueForTableColumn:(NSTableColumn *)tableColumn
row:(int)row
{
return [array objectAtIndex:row];
}
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Insert code here to initialize your application
NSMutableArray *animals = [[NSMutableArray arrayWithObjects:@"Cat", @"Dog", @"Fish", @"Squirrel", @"Bear", @"Turtle", nil] retain];
NSLog(@"%@",animals);
searcharray = animals;
[self addItems:animals];
}
- (IBAction)search:(id)sender {
//NSLog(@"%@",searcharray);
NSString *filter = [[NSString alloc] initWithString:[search stringValue]];
NSMutableArray *result = [[NSMutableArray alloc] init];
if (filter != nil) {
for (NSString *item in searcharray) {
if ([item rangeOfString:[search stringValue]].location !=NSNotFound) {
NSLog(@"Item %@ contains %@",item,[search stringValue]);
[result addObject:item];
}
}
}
else{
result = searcharray;
}
NSLog(@"%@",result);
[self addItems:result];
[result release];
[filter release];
}
@end
好,剛纔幻舞電腦周圍的手鼓到目前爲止:) 但是,是,我玩過塊if和else,在應用程序運行時檢查所有變量,對我來說一切看起來都很完美。我不知道爲什麼它不工作,tableview是空的:( –
我在C#中使用過類似的例程,並在那裏工作。我是Objective-C的新手,所以也許有一些我不知道的東西 –