小编Cha*_*ism的帖子

Swift扩展"未找到方法定义"

我正在为我的ObjC类写一个Swift扩展.虽然我的代码编译和运行完美,但我得到了一堆Xcode警告(每个Swift方法一个):

  "Method definition for 'foo_method:' not found"
  "Method definition for 'bar_method:' not found"
  "Method definition for 'baz_method:' not found"
Run Code Online (Sandbox Code Playgroud)

重现Xcode消息很简单.我用四行非样板代码制作了这个演示项目:

Objective-C(NSView的子类)

// Subclass_of_NSView.h

#import <Cocoa/Cocoa.h

@interface Subclass_of_NSView : NSView

@end


// Subclass_of_NSView.m

@implementation Subclass_of_NSView

- (instancetype)initWithFrame:(NSRect)frame
//______________^ WARNING: Method definition for resizeSubviewsWithOldSize: not found
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code here.
    }
    return self;
}

@end
Run Code Online (Sandbox Code Playgroud)

Swift(扩展Obj-C子类)

// Extension_of_Subclass.swift

import Foundation

extension Subclass_of_NSView {

    override func resizeSubviewsWithOldSize( old_bounds_size:NSSize ) {

    }

} …
Run Code Online (Sandbox Code Playgroud)

objective-c swift

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

使用哪种方法取代了"dragImage:"?

我有一个应用程序,我允许用户从NSView拖放一些数据,并在光标下使用自定义拖动图像.

我刚刚更新到Xcode 6测试版,现在我的拖放代码将无法编译.这是因为Apple已弃用以下NSView方法:

拖动图像:在:偏移量:事件:纸板:源:偏压补偿:

很好,但我应该使用什么呢?我发现的所有Apple文档仍然建议使用已弃用的方法.

还有一个"dragFile:"方法,但是我的NSView代表AV数据,并且每次用户开始拖动时都不适合将大型新文件写入磁盘.用户可以快速连续地多次中止拖动.

使用自定义图标启动拖动操作的新方法是什么?

cocoa drag-and-drop objective-c nsview swift

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

标签 统计

objective-c ×2

swift ×2

cocoa ×1

drag-and-drop ×1

nsview ×1