macOS开发-知识点总结

  • NSView的背景绘制为图片
    NSImage *backgroundImage = [NSImage imageNamed:@"图片名称"];
    backgroundImage.size = self.bounds.size;
    [backgroundImage lockFocus];
    
    NSColor* backgroundColor = [NSColor colorWithPatternImage:backgroundImage];
    [backgroundColor set];
    NSRectFill(self.bounds);
    
    [backgroundImage unlockFocus];
    
    // draw your new image
    [backgroundImage drawInRect:self.bounds
                       fromRect:NSZeroRect // 绘制整张图片
                      operation:NSCompositeSourceOver
                       fraction:1.0f];
  • 支持NSView的拖拽操作
    -(NSDragOperation)draggingEntered:(id<NSDraggingInfo>)sender{
    NSPasteboard *pboard = [sender draggingPasteboard];
    
    if([[pboard types] containsObject:NSFilenamesPboardType])
    {
        return NSDragOperationCopy;
    }
        return NSDragOperationNone;
    }
    
      -(BOOL)prepareForDragOperation:(id<NSDraggingInfo>)sender
    {
        return YES;
    }

    -(BOOL)performDragOperation:(id<NSDraggingInfo>)sender
    {
        NSArray *filePaths =[[sender draggingPasteboard] propertyListForType:NSFilenamesPboardType];
        // 利用拖拽文件进行相应操作
    }
    
    -(void)concludeDragOperation:(id<NSDraggingInfo>)sender
    {
        //拖拽结束
    }
  • 判断NSWindow是否全屏
@interface NSWindow (WFFullScreen)

- (BOOL)isFullScreen;

@end

@implementation NSWindow (BFFullScreen)

- (BOOL)isFullScreen
{
    return (([self styleMask] & NSFullScreenWindowMask) == NSFullScreenWindowMask);
}

@end
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容