iPhone开发应用中NSTableView相关操作

移动开发 iOS
iPhone开发应用中NSTableView相关操作是本文要介绍的内容,主要是来学习NSTableView的使用方法,如何使NSTableView同时支持拖拽替换和拖拽插入。

iPhone开发应用中NSTableView相关操作是本文要介绍的内容,主要是来学习NSTableView的使用方法,如何使NSTableView同时支持拖拽替换和拖拽插入。

当你的NSTableView做为一个拖拽目标时,你可能希望同时支持拖拽替换当前项目,或者拖拽后在当前位置插入新的项目。你需要使用NSTableView的 -setDropRow:dropOperation:方法。本文介绍如何通过代码实现NSTableView的这种拖拽功能。

代码如下所示:

- (NSDragOperation) tableView: (NSTableView *) view  
                 validateDrop: (id ) info  
                  proposedRow: (int) row  
        proposedDropOperation: (NSTableViewDropOperation) op  
{  
    [view setDropRow: row  
               dropOperation: op];  
    NSDragOperation dragOp = NSDragOperationCopy;  
    return (dragOp);  

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

同时,在acceptDrop方法里进行如下操作:

- (BOOL) tableView: (NSTableView *) view  
        acceptDrop: (id ) info  
               row: (int) row  
     dropOperation: (NSTableViewDropOperation) op  
{  
    if (op == NSTableViewDropOn) {  
        // 替换  
    } else if (op == NSTableViewDropAbove) {  
        // 插入  
    } else {  
        NSLog (@"unexpected operation (%d) in %s",  
               op, __FUNCTION__);  
    }  
    return (YES);  

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

在NSTableView选择项改变时获取通知

代码如下所示:

- (void) tableViewSelectionDidChange: (NSNotification *) notification  
{  
    int row;  
    row = [tableView selectedRow];  
              
    if (row == -1) {  
        //do stuff for the no-rows-selected case  
    }   
      
    else {  
       // do stuff for the selected row  
    }  
}  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

这段代码需要放在NSTableView的delegate里。如果没有delegate,可以将自身设置为delegate。

小结:iPhone开发应用中NSTableView相关操作的内容介绍完了,希望通过本文的学习能对你有所帮助!

责任编辑:zhaolei 来源: cocoachina
相关推荐

2011-08-19 13:34:33

iPhone应用ABAddressBo

2011-08-17 10:24:50

iPhone开发UIImage图片

2011-08-10 17:37:00

iPhoneASIHTTPRequ

2011-08-15 11:37:20

iPhone开发Mask

2011-08-18 16:24:44

iPhone开发图片

2011-08-12 14:33:06

iPhone缓存文件

2011-08-15 15:44:46

iPhone开发PDF

2011-08-09 17:12:30

iPhoneCFRunLoop

2012-04-26 13:45:20

iPhone应用发布税务相关手续

2012-04-26 13:26:58

iPhone应用技巧

2011-08-12 13:30:27

iPhoneASIFormData架构

2011-08-03 16:01:24

iPhone应用开发 自动登陆

2011-08-11 15:23:04

iPhoneNSBundleXcode

2011-08-16 15:48:37

iPhone开发抓图程序

2011-08-15 13:44:07

iPhone开发UITableView

2011-08-08 13:50:29

iPhone开发 NSOperatio 多线程

2011-08-12 09:48:24

iPhoneCoreLocatio定位

2011-07-26 11:13:15

iPhone PXL

2011-07-08 14:58:16

iPhone Xcode iOS

2011-07-19 09:46:38

点赞
收藏

51CTO技术栈公众号