我是靠谱客的博主 坚定路人,最近开发中收集的这篇文章主要介绍【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单元格用于确定选择的效果所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部