Sop*_*ert 68 xcode cocoa-touch objective-c ios
有没有办法以编程方式启用或禁用返回键UIKeyboard
?我能找到的最接近的是enablesReturnKeyAutomatically
,但这只会告诉我是否要禁用它.
Tha*_*nka 77
可能是以下代码段帮助.
textfield.enablesReturnKeyAutomatically = YES;
Run Code Online (Sandbox Code Playgroud)
这在UITextInputTraits的iPhone SDK中公开可用.使用此选项时,如果文本字段中没有可用的输入文本,则将禁用返回键
Kyl*_*egg 27
UITextField
的enablesReturnKeyAutomatically
属性可以直接在Interface Builder进行设置,只需选择文本字段,打开属性检查器.正如Tharindu所说,这将根据是否输入任何文本自动启用和禁用返回键.
当然,如果你需要在代码中更改它,你仍然可以使用编程方式设置它nameTextField.enablesReturnKeyAutomatically = true
.
编辑以解决downvotes:
否则,没有正式的方法来启用和禁用命令返回键.我建议不要尝试使用私有API来实现这一目标.或者,您可以使用textFieldShouldReturn:
委托方法并将条件/验证放在那里并做出相应的响应.
Ell*_*roo 23
如果您可以获得UIKeyboard对象本身(SDK中未公开的内容,请注意,如果您使用这些调用,Apple可能会不高兴),那么有一个方便的setReturnKeyEnabled:成员函数.
id keyboard = [self magicallyGetAUIKeyboardInstance];
[keyboard setReturnKeyEnabled: NO];
Run Code Online (Sandbox Code Playgroud)
(通过Erica Sadun转储 2.2 iPhone框架)
实施magicallyGetAUIKeyboardInstance
描述这里.
小智 18
你可以覆盖UITextField
's hasText
属性来实现这个目的:
class CustomTextField : UITextField {
override public var hasText: Bool {
get {
return evaluateString(text)
}
}
}
Run Code Online (Sandbox Code Playgroud)
凡evaluateString(_ text: String?) -> Bool
对您的需要输入标准的检查,例如字符数.
当然,这只能与enablesReturnKeyAutomatically = true
套装相结合UITextField
.
我知道我的答案既不及时,也不是用Objective-C编写的,但鉴于我无法在其他任何地方找到答案而这个问题在其他主题中经常提到,我认为这里是最好的地方.发表它.
一个好主意是创建一个文件以从任何地方访问此类。这是代码:
UIKeyboard.h
#import <UIKit/UIKit.h>
@interface UIApplication (KeyboardView)
- (UIView *)keyboardView;
@end
Run Code Online (Sandbox Code Playgroud)
UIKeyboard.m
#import "UIKeyboard.h"
@implementation UIApplication (KeyboardView)
- (UIView *)keyboardView
{
NSArray *windows = [self windows];
for (UIWindow *window in [windows reverseObjectEnumerator])
{
for (UIView *view in [window subviews])
{
if (!strcmp(object_getClassName(view), "UIKeyboard"))
{
return view;
}
}
}
return nil;
}
@end
Run Code Online (Sandbox Code Playgroud)
现在您可以从您自己的类中导入并访问此类:
#import "UIKeyboard.h"
// Keyboard Instance Pointer.
UIView *keyboardView = [[UIApplication sharedApplication] keyboardView];
Run Code Online (Sandbox Code Playgroud)
您可以在这里找到此类的完整文档: http ://ericasadun.com/iPhoneDocs/_u_i_keyboard_8h-source.html
您可以在这里找到更多信息: http://cocoawithlove.com/2009/04/showing-message-over-iphone-keyboard.html
归档时间: |
|
查看次数: |
54120 次 |
最近记录: |