有没有办法让Multi-Line EditText出现并在Android 2.3上使用IME Action Label"Done"?
在Android 2.2中,这不是问题,输入按钮显示IME操作标签"完成"(android:imeActionLabel="actionDone"),并在单击时取消软输入.
配置EditText多线时,Android 2.3无法显示软输入键盘的"完成"操作.
我已经设法通过使用a来改变Soft Input输入按钮的行为KeyListener,但是enter按钮仍然看起来像一个回车键.
这是宣言 EditText
<EditText
android:id="@+id/Comment"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="0dp"
android:lines="3"
android:maxLines="3"
android:minLines="3"
android:maxLength="60"
android:scrollHorizontally="false"
android:hint="hint"
android:gravity="top|left"
android:textColor="#888"
android:textSize="14dp"
/>
<!-- android:inputType="text" will kill the multiline on 2.3! -->
<!-- android:imeOptions="actionDone" switches to a "t9" like soft input -->
Run Code Online (Sandbox Code Playgroud)
inputType在加载后在活动中设置内容视图时检查值,它显示为:
inputType = 0x20001
Run Code Online (Sandbox Code Playgroud)
这是:
TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_NORMALInputType.TYPE_TEXT_FLAG_MULTI_LINE如果我将参数传递给方法,是否需要在方法结束时释放参数?
从已经开发的应用程序开始,我已经执行了iPhone开发指南 - 单元测试应用程序中的说明
我可以成功地在设备上运行的应用程序样式测试中包含和使用我的应用程序类,并将其结果输出到控制台.
如果我添加以下代码行:
STAssertTrue([viewController isKindOfClass:[LoginViewController class]], @"Top view controller is not LoginViewController");
Run Code Online (Sandbox Code Playgroud)
生成以下生成错误:
Undefined symbols:
"_OBJC_CLASS_$_LoginViewController", referenced from:
__objc_classrefs__DATA@0 in LoginViewTest.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
我可以为项目和测试目标提供更多配置信息,但是设置工作文件没有[LoginViewController class]测试源中的行.
没有那一行,我可以引用该类,使用它的属性并成功发送消息.
在尝试以这种方式使用App类时是否需要链接构建设置或捆绑加载选项?或者我应该找到另一种类型的测试来确认对象的类是预期的类?
我已经以一些简单的方式更新了现有iPhone应用程序的模型(删除属性,添加属性,删除索引),并且可以使用自动轻量级迁移来迁移持久性存储.
由于数据集的典型大小,处理时间并不是无关紧要的,并且需要为用户提供反馈.
NSMigrationManager提供了一个简单但有用的migrationProgress值,可在执行迁移时发送KVO通知.这构成了提供反馈的基础,但是尝试使用推断的模型([NSMappingModel inferredMappingModelForSourceModel:destinationModel:error:])导致完全相同的数据集的时序截然不同.
原始iPhone(2G)上的配置文件结果,磁盘上的缓存大小:1.785 MB.
自动推断轻量级迁移
PROFILE: CacheManager -migrateStore
PROFILE: 0.6130 (+0.6130) models loaded
PROFILE: 1.1759 (+0.5629) delegate -CacheManagerWillMigrate:
PROFILE: 1.2516 (+0.0757) persistent store coordinator loaded
PROFILE: 5.1436 (+3.8920) automatic lightweight migration completed
PROFILE: 5.5435 (+0.3999) delegate -CacheManagerDidFinishMigration:withError:
Run Code Online (Sandbox Code Playgroud)
手动推断迁移
PROFILE: CacheManager -migrateStore
PROFILE: 0.6660 (+0.6660) models loaded
PROFILE: 1.1471 (+0.4811) inferred mapping model generated
PROFILE: 1.4046 (+0.2574) delegate -CacheManagerWillMigrate:
PROFILE: 1.5058 (+0.1013) persistent store coordinator loaded
PROFILE: 22.6952 (+21.1894) manual migration completed
PROFILE: 23.1478 …Run Code Online (Sandbox Code Playgroud) Apple Developer Reference Library有一个类引用WebPreferences
我搜索了SO,Dev Forums和Google搜索没有任何相关结果.
EXC_BAD_ACCESS 信号生成.
我找不到崩溃报告..它发生在模拟器上.调用调试器,我没有收到崩溃报告.
编辑
当点击a UITextField,在加载视图时将a UITextField或if UITextField设置为第一响应者时触发此操作(由导航控制器按下).
重现并不容易.在它再次发生之前,我可以进行一百个应用程序启动/调试周期.然后在5次发布中可能会发生3次.
我在调试器中有一个线程列表,显示了对WebPreferences的几个引用.
只是想知道构建NSPredicate的最佳方法是,如果某些过滤器是可选的?
这基本上是针对过滤器的,所以如果没有选择某些选项,我不会过滤它们
例如.如果我为过滤器设置了option1和option2.
NSPredicate*predicate = [NSPredicate predicateWithFormat:@"option1 =%@ AND option2 =%@] ....
否则如果只是option1 NSPredicate*predicate = [NSPredicate predicateWithFormat:@"option1 =%@] ....
关键是有10个不同的选项可以过滤,所以我不想为10x10可能的组合编写代码.
谢谢
我正在尝试提供IBAction应用程序各个部分所需的常用功能的方法.
即Login是以模态方式实现的,如果成功,则会产生通知,允许所有已加载的视图控制器对此事件做出反应(从匿名转换为经过身份验证)
@interface MyAppDelegate : NSObject <UIApplicationDelegate>
{
...
}
- (IBAction)loginTapped:(id)sender;
@end
Run Code Online (Sandbox Code Playgroud)
我将该按钮的操作设置为IB中的First Responder,但响应者链没有给出MyAppDelegate响应的机会.
我的问题是,我不想在响应器链的各个部分复制该方法,我想将它添加到已经是子类的公共类中.
该UIResponder链去一路走过来的UIApplication,这似乎是结束,但.我UIApplicationDelegate没有参加.
我想插入或添加我的应用程序委托给响应者链!
(或者找到另一种方法将UIButton触摸内部连接到应用程序范围的实现..我想避免子类化UITabBarController或者UIWindow如果可能的话)
我在这里搜索了一些关于SO的问题,寻找任何暗示,为什么我看到这种行为,什么都没有.
考虑一个类(实际上是两个表现出相同问题的类),构建在静态库中,包装在框架包中(使用的步骤).它们继承自Foundation框架类集群(NSMutableDictionary和NSMutableArray).
这些类的使用依赖于在静态函数(不是类方法!)用于分配和初始化实例(我猜是一种工厂帮助函数?)之前初始化的一些静态变量.
当iOS应用程序项目链接到该框架时,模拟器和设备之间的Objective-C运行时类加载行为存在差异.
具体来说,在设备(iPhone 4,iOS 4.3.3)上加载应用程序时,这些类不会收到+load消息,并且静态变量不会初始化,因此静态工厂方法失败.在模拟器上,消息被发送,并且所有消息都按预期工作.设备运行时有问题可能是一个问题
我的问题是,我的框架可以配置不同以确保+load邮件发送?或者我遇到了iOS中静态库/框架类加载的错误?
这些类来自JSONKit库(JKArray,JKDictionary).
这个问题的示例项目在这里 - https://github.com/ohhorob/JSONKit-in-framework-demo
编辑:根据@ bbum的建议,我已经验证了在应用程序运行时,JKDictionary和JKArray类实际上已加载并可用.DeviceBrokenGitHub项目的分支使用所使用的验证进行更新.
我向Apple提交了一份bug报告(#9461567).
我的目标是实现3.x SDK版本与UIImagePickerController及其allows(Image)Editing属性的兼容性.
// SDK 2.0 to 3.0
myImagePickerController.allowsImageEditing = YES;
// SDK 3.1
myImagePickerController.allowsEditing = YES;
Run Code Online (Sandbox Code Playgroud)
一些研究揭示了一些客观方法,但是处理弃用方法的最佳实践是什么?
performSelector或者NSInvocation用于非对象参数
#define 途径
任何其他推荐的策略......
iphone ×8
objective-c ×6
core-data ×2
ios ×2
android ×1
cocoa ×1
linker ×1
methods ×1
migration ×1
narc ×1
nspredicate ×1
parameters ×1
uiresponder ×1
unit-testing ×1
xcode ×1