Ram*_*Ram 2 macos cocoa objective-c nsbrowser
在我Browser选择默认行的实现中,我使用了以下代码。
[browser setTarget:self];
[browser setAction:@selector(singleClickOnBrowser:)];
[browser sendActionOn:NSLeftMouseDown];
[browser selectRow:0 inColumn:0];
[browser sendAction];
Run Code Online (Sandbox Code Playgroud)
有没有办法区分用户点击和第一次选择的行来选择默认行?
在我的应用程序中,我需要跟踪在 NSBrowser 中选择的最后一个项目。以下设置 NSBrowser:
- (void)awakeFromNib
{
[browser setDelegate:self];
[browser setTarget:self];
[browser setAction:@selector(browserCellSelected:)];
[browser setSendsActionOnArrowKeys:YES];
}
Run Code Online (Sandbox Code Playgroud)
以下处理被选中的单元格。这适用于鼠标或键盘所做的选择。如果您的应用允许多项选择,则您的操作方法将需要处理该问题。
- (void)browserCellSelected:(id)sender
{
NSIndexPath *indexPath = [browser selectionIndexPath];
MyItem *myItem = [browser itemAtIndexPath:indexPath];
if (myItem)
{
NSLog(@"Selected Item: %@", myItem.name);
}
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,编程选择不会触发 browserCellSelected: 方法,用户点击不会调用委托的 browser:selectRow:inColumn: 方法。
| 归档时间: |
|
| 查看次数: |
1393 次 |
| 最近记录: |