我是靠谱客的博主 坚定路人,最近开发中收集的这篇文章主要介绍【Mac OS X开发】在NSAlert中添加NSTableView,双击NSTableView单元格用于确定选择的效果,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
要达到在NSAlert中添加NSTableView,双击NSTableView单元格用于确定选择的效果,需要如下三个步骤:
在NSAlert中添加NSTableView视图
即通过将包含有tableView的scrollView所在的视图添加到[alert window]的contentView的子视图集合中,即可在NSAlert中添加NSTableView视图。
NSString *messageTitle = @"Add New Item";
NSString *defaultButtonTitle = @"Add";
NSString *alternateButtonTitle = @"Cancel";
NSAlert *alert = [NSAlert alertWithMessageText:messageTitle
defaultButton:defaultButtonTitle
alternateButton:alternateButtonTitle
otherButton:nil
informativeTextWithFormat:@""];
[alert setAlertStyle:NSInformationalAlertStyle];
NSImage *icon = [NSImage imageNamed:@"icon.png"];
[alert setIcon:icon];
[alert layout];
NSPanel* panel = [alert window];
NSRect rect = [selectNewItemAccessoryView frame];
rect.size.height += 160;
[panel setFrame:rect display:YES];
NSView* contentView = [panel contentView];
// Get original sizes
NSRect cframe = [contentView frame];
NSRect rect2 = NSMakeRect(0, 50, cframe.size.width, cframe.size.height-138);
// accessoryView为要添加的NSTableView
[accessoryView setFrame:rect2];
[contentView addSubview:selectNewItemAccessoryView];
[alert beginSheetModalForWindow:[self window]
modalDelegate:self
didEndSelector:@selector(addNewItemAlertDidEnd:returnCode:contextInfo:)
contextInfo:nil];
处理NSTableView单元格双击事件
- (void)awakeFromNib
{
[super awakeFromNib];
[_tableView setTarget:self];
[_tableView setDoubleAction:NSSelectorFromString(@"doubleClick:")]; //setDoubleAction双击选择事件
}
- (void) doubleClick: (id)sender
{
NSInteger rowNumber = [_tableView clickedRow];
NSLog(@"Double Clicked.%ld ",rowNumber);
// ...
}
NSAlert视图中双击NSTableView单元格后模拟确定效果并关闭NSAlert视图
// 关闭alertView并确定选择
NSPanel* alertWindow = (NSPanel *)[self window];
[NSApp endSheet:alertWindow returnCode:NSAlertDefaultReturn];
[alertWindow orderOut:self];
将上面这段代码放到NSTableView的双击响应事件(void)doubleClick: (id)sender中。
这样通过捕获和传入NSAlertDefaultReturn代码,即可执行该alertView的handleResult函数,达到模拟点击默认的按钮的效果。
最后
以上就是坚定路人为你收集整理的【Mac OS X开发】在NSAlert中添加NSTableView,双击NSTableView单元格用于确定选择的效果的全部内容,希望文章能够帮你解决【Mac OS X开发】在NSAlert中添加NSTableView,双击NSTableView单元格用于确定选择的效果所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复