我有一个包含NSMutableArray
的NSMutableDictionaries
。我想在NSTableView
中显示该词典中的一个字符串。该字符串在对象之间是唯一的。默认情况下,它具有一些已知值。如果找到任何重复的字符串,请尝试显示警报,并使用以下API编辑相应的行。- (void)editColumn:(NSInteger)column row:(NSInteger)row withEvent:(NSEvent *)theEvent select:(BOOL)select;
这工作正常。
如果用户按下选项卡,或者如果用户按下任何其他视图(不重命名,请退出FirstResponder
),但tableview
中仍然存在旧名称,我想将此行带回到edit mode
。如何做到这一点?
最佳答案
I was able to solve the issue.Modified the alert using sheets.
Following code worked for me.
- (void)controlTextDidEndEditing:(NSNotification *)aNotification
{
if(duplicate)//duplicatefound
{
[self showAlertForDuplicates];
}
}
// Selector
- (void)duplicateAlertDidEnd:(NSAlert *)alert returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo
{
if (returnCode == NSAlertFirstButtonReturn)
{
[self.tableView editColumn:0 row:self.selectedRow withEvent:nil select:NO];
}
}
-(void) showAlertForDuplicates
{
NSAlert *alert = [[[NSAlert alloc] init] autorelease];
[alert addButtonWithTitle:@"Ok"];
[alert setMessageText: @"DuplicateName"];
[alert setInformativeText: @"Rename the item")];
[alert setAlertStyle:NSInformationalAlertStyle];
[alert beginSheetModalForWindow:nil modalDelegate:self didEndSelector:@selector(duplicateAlertDidEnd:returnCode:contextInfo:) contextInfo:nil];
}
关于objective-c - 使用NSTableView中的NSAlerts编辑重复行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10174899/