小编Bin*_*cks的帖子

NSUserNotificationCenter解除通知

我正在尝试将新的Mountain Lion NSUserNotificationCenter用于我的应用程序(实际上并不太难).发布通知就像魅力一样

NSUserNotification *userNotification = [[NSUserNotification alloc] init];
userNotification.title = @"Some title";
userNotification.informativeText = @"Some text";

[[NSUserNotificationCenter defaultUserNotificationCenter] deliverNotification:userNotification];
Run Code Online (Sandbox Code Playgroud)

但是,一旦应用获得焦点,我想解除屏幕上的所有通知.就像新的消息应用程序一样.在后台接收新消息时,会显示通知.当应用程序再次变为活动状态时,这些应用程序将自动关闭并从屏幕和通知中心消失.

为了复制这个,我已经为NSApplicationDidBecomeActiveNotification通知注册了一个方法,该方法也被成功调用.我在那里打电话[NSUserNotificationCenter defaultUserNotificationCenter] removeAllDeliveredNotifications].

但是,这会导致删除通知中心中收集的通知,同时仍显示右上角显示的相应"气泡".

迭代所有已发送的通知并逐个删除它们具有完全相同的效果,scheduleNotification而不是使用deliverNotification.

我是唯一遇到此问题的人,还是我错过了以编程方式解除屏幕上部分和通知中心部分通知的内容?

cocoa nsnotificationcenter osx-mountain-lion nsusernotification

20
推荐指数
1
解决办法
3821
查看次数

基于视图的NSOutlineView标题单元格字体问题

我目前正在尝试在我的Cocoa应用程序中使用基于视图的新NSOutlineView.因为我没有使用绑定,所以我在控制器中实现了所有必需的委托和数据源方法.

在界面构建器中,我添加了一个NSOutlineView,突出显示设置为SourceList,内容模式设置为View Based.因此,提供了两个默认表格单元视图(一个HeaderCell设置为标识符的Header单元格和一个DataCell设置为标识符的数据单元格)

这就是它在界面构建器中的样子,标题单元格视图正确显示灰蓝色textField,而数据单元格视图具有图像视图和textField具有正确的颜色和字体设置

为了提供视图,我使用以下代码返回DataCell视图或HeaderCell视图,并根据接口构建器中设置的相应标识符相应地设置单元格的textField.

- (NSView *)outlineView:(NSOutlineView *)outlineView 
     viewForTableColumn:(NSTableColumn *)tableColumn 
                   item:(id)item {


    NSTableCellView *result = nil;

    if ([item isKindOfClass:[NSMutableDictionary class]]) {
        result = [outlineView makeViewWithIdentifier:@"HeaderCell" owner:self];

        id parentObject = [outlineView parentForItem:item] ? [outlineView parentForItem:item] : groupedRoster;
        [[result textField] setStringValue:[[parentObject allKeys] objectAtIndex:0]];


    } else {
        result = [outlineView makeViewWithIdentifier:@"DataCell" owner:self];

        [item nickname] ? [[result textField] setStringValue:[item nickname]] : [[result textField] setStringValue:[[item jid] bare]];
    }
    return result;
}
Run Code Online (Sandbox Code Playgroud)

运行它看起来如下所示的一切. …

macos cocoa nsoutlineview

5
推荐指数
1
解决办法
4353
查看次数

基于视图的NSOutlineview选择渐变

在我的小Cocoa应用程序中,我仍然在使用基于视图的NSOutlineView.我正在尝试使用finder之后模拟我的OutlineView.当Finder OutlineView失去焦点(例如,单击右侧的任何文件夹)时,所选行(例如桌面)将保持选中,使用亮蓝色渐变,并且不会更改为不活动的蓝灰色渐变.

我想在我的应用程序中复制此行为.

在一个不基于视图的OutlineView中,我能够继承NSOutlineView并重新实现(void)highlightSelectionInClipRect:(NSRect)clipRect,这样每个突出显示的行都可以提供明亮的蓝色背景图像.

但是,现在使用基于视图的OutlineView(设置为SourceList样式),这个方法显然甚至都没有被调用.我甚(id)_highlightColorForCell:(NSCell *)cell至已经实现了返回nil,正如一些网站建议的那样,但这也无济于事.

有关如何在基于视图的OutlineView中设置高光渐变的任何提示?

macos cocoa objective-c selection nsoutlineview

5
推荐指数
2
解决办法
3632
查看次数

基于视图的NSOutlineView行徽章

我仍在努力使用OSX Lion引入的基于视图的NSOutlineViews.虽然现在一切都很好,但我想将类似Mail.app的未读徽章添加到行中.

是否有比下面的例子基于视图的NSOutlineViews更好的办法-(void)drawBadgeForRow:(NSInteger)rowIndex inRect:(NSRect)badgeFramePXSourcelist

谢谢,雄鹿队

macos cocoa nsoutlineview

1
推荐指数
1
解决办法
675
查看次数