我正在为我的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) 我有一个应用程序,我允许用户从NSView拖放一些数据,并在光标下使用自定义拖动图像.
我刚刚更新到Xcode 6测试版,现在我的拖放代码将无法编译.这是因为Apple已弃用以下NSView方法:
拖动图像:在:偏移量:事件:纸板:源:偏压补偿:
很好,但我应该使用什么呢?我发现的所有Apple文档仍然建议使用已弃用的方法.
还有一个"dragFile:"方法,但是我的NSView代表AV数据,并且每次用户开始拖动时都不适合将大型新文件写入磁盘.用户可以快速连续地多次中止拖动.
使用自定义图标启动拖动操作的新方法是什么?