我需要更换NSLog
用DDLogVerbose
的所有文件在当前项目中我的工作...什么是一个简单的方法来做到这一点?(搜索导航器只在其中搜索).
此外,我需要在所有.m文件的开头添加一行.这怎么做得很快?(有超过500个这样的文件.)
我有一个UITextField
子类,我已经覆盖了一些方法(见下面的代码).问题是,当我输入它并且文本达到严格边距时,它将不再显示我正在键入的内容.在视图调试模式中,我看到UIFieldEditor
文本提交的范围要宽得多.
这是UITextFiled子类代码:
- (instancetype)init
{
self = [super init];
if (self) {
self.edgeInsets = UIEdgeInsetsMake(7, 0, 10, 15);
}
return self;
}
- (id)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if (self) {
self.edgeInsets = UIEdgeInsetsMake(7, 0, 10, 15);
}
return self;
}
-(id)initWithCoder:(NSCoder *)aDecoder{
self = [super initWithCoder:aDecoder];
if(self){
self.edgeInsets = UIEdgeInsetsMake(7, 0, 10, 15);
}
return self;
}
- (CGRect)textRectForBounds:(CGRect)bounds {
return [super textRectForBounds:UIEdgeInsetsInsetRect(bounds, self.edgeInsets)];
}
- (CGRect)editingRectForBounds:(CGRect)bounds {
return [super editingRectForBounds:UIEdgeInsetsInsetRect(bounds, self.edgeInsets)];
}
Run Code Online (Sandbox Code Playgroud)
这是我使用这个类的代码:
// …
Run Code Online (Sandbox Code Playgroud) 这个测试失败是因为
超过 128 个字符的最大长度。您可以通过使用自定义 NSPredicate 构建查询来解决此限制,该查询指定要匹配的属性(标签、标题、值、占位符值或标识符)。
func testMessage() {
app.buttons["BEGIN"].tap()
let tablesQuery = app.tables
XCTAssert(tablesQuery.children(matching: .cell).element(boundBy: 0).staticTexts["<EXTREMELY LONG TEXT HERE (200chars)>"].exists)
}
Run Code Online (Sandbox Code Playgroud)
我如何转换它,以便在测试文本的有效性时解决 128 个字符的限制。
我有一个可以使用自定义 URL 方案打开的 iOS 应用程序。当使用 url 打开时,应用程序开始接收数据,并立即在应用程序页面上打开应用商店,就像未安装一样。
这可能是什么原因造成的?
在iOS 6中,我使用:
CGSize labelSize = [self.text sizeWithFont:self.font constrainedToSize:size lineBreakMode:self.lineBreakMode];
self.frame = CGRectMake(self.frame.origin.x, self.frame.origin.y , labelSize.width, self.frame.size.height);
Run Code Online (Sandbox Code Playgroud)
动态调整UILabel的大小.这在iOS 7中不起作用,所以我尝试了:
NSString *text = self.text;
CGFloat width = size.width;
UIFont *font = self.font;
NSAttributedString *attributedText = [[NSAttributedString alloc] initWithString:text
attributes:@{ NSFontAttributeName: font }];
CGRect rect = [attributedText boundingRectWithSize:(CGSize){width, CGFLOAT_MAX}
options:NSStringDrawingUsesDeviceMetrics
context:nil];
CGSize size = rect.size;
self.frame = CGRectMake(self.frame.origin.x, self.frame.origin.y , size.width, self.frame.size.height);
Run Code Online (Sandbox Code Playgroud)
这是在UILabel的一个类别中,但这也不起作用......任何想法我应该使用什么?
我有一个类使用可以从 objc-c 和 swift 访问的类计算变量。我想测试所有这些以“const”开头的属性。
我有这个:
import UIKit
class MyClass: NSObject {
@objc class var constMethod1 : UIColor {
print("Method1")
return UIColor.red
}
@objc class var constMethod2 : UIColor {
print("Method2")
return UIColor.green
}
}
var methodCount: UInt32 = 0
let methodList = class_copyMethodList(MyClass.self, &methodCount)
for i in 0..<Int(methodCount){
let unwrapped = methodList?[i]
// call method only if it starts with "const"
let crtMethodStr = NSStringFromSelector(method_getName(unwrapped!))
print(crtMethodStr)
if crtMethodStr.hasPrefix("const") {
// call it
}
}
Run Code Online (Sandbox Code Playgroud)
我得到的只是返回数组中的“init”?问题是什么?我在另一个线程上看到,只需添加“@objc”即可解决此问题。另外,如何从重新调整的数组中访问这些变量之一?
在 iOS 应用程序中,我有一个子项目(不是 cocoapods),其中包含了一个 swift 文件和 ObjC 文件(由 swift 文件使用)。XCode 自动创建了一个桥接文件,但无法构建它,因为框架中显然不允许桥接。我使用的解决方法是将objective-c 标头添加到伞文件中并且它起作用了。现在我需要使用 ObjC 中的 swift 类。我必须define module
设置为 YES,生成的文件 Framework-Swift.h 。但是当我尝试在objective-c中导入它时,我得到
无法构建 Objective-C 模块
经过一些谷歌搜索后,我得到的最接近的是这个答案:
啊,明白了。看起来您正在构建一个混合的 Swift 和 Objective-C pod - 如果是这种情况,Xcode 将尝试在生成的 -Swift.h 标头中导入。您需要手动创建标头并为要公开给 Swift 的 Objective-C 类添加导入。
CocoaPods 自动生成一个伞头标头并将其导入到 .modulemap 中,但 Xcode 在生成 -Swift.h 标头时不使用它
但我不确定需要手动创建什么标题。关于在 Objective-C 框架中使用 swift 的任何想法或指针?两种方式?
ios ×5
objective-c ×2
swift ×2
app-store ×1
ios7 ×1
macos ×1
swift5 ×1
uilabel ×1
uitextfield ×1
url-scheme ×1
xcode ×1
xcode5 ×1
xctest ×1
xcuitest ×1