Comments (27)
Yes. Just use \U03xx for the diacritics.
In the current version the position shown will be moved a bit, however.
Original comment by [email protected]
on 26 Jan 2009 at 6:37
from networkpx.
[deleted comment]
from networkpx.
I’m sorry to bother you with silly questions but I didn’t understand how I
am supposed to do that! In order to
use \U03xx, should I create/program an iKeyEx keyboard that recognizes which
characters should be
combined when typed consecutively? If that is the case, then unfortunately I
cannot do that, I don’t know how.
I read on issue 32 that you are planning to add support that would allow
combining characters to be typed.
Does this mean that I would then be able to do that just by making some changes
to layout.plist?
My idea of an ergonomic, complete and efficient Greek keyboard is displayed in
the following two pictures.
Diacritical marks displayed in the variants pop up are the ones that need to be
combined with some of the
vowels. Moreover, it would be great if there was a way to make the artwork
display the special character "ς"
instead of only the capital "Σ". Would something like that be possible using
iKeyEx?
http://img91.imageshack.us/img91/8083/picture4234ni5.png
http://img220.imageshack.us/img220/1922/picture3mb4.png
Original comment by [email protected]
on 27 Jan 2009 at 12:28
from networkpx.
@3:
Yes. You can look at the variants.plist of MathTyper by the way. The "V" key
contains
a lot of combining characters.
Whether to combine is not a job of iKeyEx, it's the job of the iPhoneOS, and it
handles that nicely.
Original comment by [email protected]
on 27 Jan 2009 at 8:28
from networkpx.
I'm sorry, I think I didn't make myself clear. I don't want to insert combined
characters by holding down a key
and selecting them from the popup. I want to press two different keys and have
a combined character as a
result of my action.
For example, I want to be able to press the "΄" key and then press the "α"
key in order to input "ά". I know that
I can have "ά" in variants.plist but this way of typing in Greek is time
consuming. I would have to press and
hold a key for every word I type.
The keyboard I am using at the moment (not provided by apple) is displayed in
the following picture. Even
though it supports 32 different characters (based on Russian keyboard), it
still lacks some which can only be
typed by holding down other keys. The number and size of keys makes it
difficult to type properly. I was just
wondering whether iKeyEx would allow me to simplify things.
http://img183.imageshack.us/img183/9761/keyboardap5.png
The reason I am asking, is because the action of combining characters seems to
be supported by Apple in
their Korean keyboard. As you can see in the following picture, using the
Korean keyboard, when you type the
first two characters consecutively, you get the third one as a result.
http://img141.imageshack.us/img141/2540/picture1il7.png
Original comment by [email protected]
on 27 Jan 2009 at 11:57
from networkpx.
What ppericleous is asking is if we can detect two consecutive keypresses and
replace
them with one 'combined' character. Am I correct to assume that an input
manager
would be able to do that?
I'll have a look at the l33t input manager and see if I can come up with a
proof of
concept.
Original comment by orestis
on 29 Jan 2009 at 2:02
from networkpx.
I also realised that the space bar shortcut does the same thing without any
pop-ups (
replace two spaces with dot space). Perhaps there is a way of hijacking that
code? It
would be cleaner from an UI point of view.
Original comment by orestis
on 29 Jan 2009 at 2:04
from networkpx.
You should understand how does the Unicode Combining Characters work -- they are
designed to avoid having an input manager. Take Latin characters as example.
Suppose "E" is the last character you've entered. Now the character \U0301, the
"COMBINING ACUTE ACCENT", is entered (so it is "E\U0301" now). iPhoneOS will
recognize that it is a combining character and *automatically* combine it with
E and
form É.
Therefore, what you need to do is to assign \U0301 to the text of a key, and the
combining acute is done, although you have to press it after the character
instead of
before it.
The double space shortcut is hard-coded in the iPhoneOS and you can't utilize
it.
Original comment by [email protected]
on 29 Jan 2009 at 5:49
from networkpx.
Sadly it seams that iPhoneOS does not handle \U0301 combining character with
greek
correctly... It allows us to put the ACUTE ACCENT even on non-vowel chars.
Additionally it is glitched and generates non standard characters (for example
the
acute appears on top of the other character merging with it and producing bad
characters). As long as it is an iPhone OS bug there is no way to overcome it I
pressume?? Maybe by providing a good wiki for us to a create an entirely new
Keyboard
Bundle that merges two characters as one as specified by the bundle's unique
input
manager...
Original comment by [email protected]
on 29 Jan 2009 at 8:11
from networkpx.
Here's a pic of what it looks like:
http://img514.imageshack.us/img514/9189/img0001xq1.png
On top are the combined characters, on the bottom the correct unicode chars.
I'll try implementing an input
manager that will do the right thing and post back.
Original comment by orestis
on 29 Jan 2009 at 8:46
from networkpx.
By browsing the UIKit2 headers, another approach comes to mind:
Have two 'modes', normal and accented. These modes will be implemented by
changing the actions of the
candidate keys in the layout. Pressing the accent button will enable the
accented mode (perhaps changing the
labels as well), pressing any other button after it will restore the normal
mode.
This sounds like a good approach, and can also give feedback. The only thing I
can't tell by browsing the
headers is how can you access the instance of UIKeyboardLayout to call
setTarget:forKey: on. Is there any
example of custom key actions/targets that I can peruse to see how it works?
Thanks,
Orestis
Original comment by orestis
on 29 Jan 2009 at 9:18
from networkpx.
OK, after closer inspection, it seems that I can do
[UIKeybordImpl activeInstance] to grab an instance which has an m_layout which
is a UIKeyboardLayout. I may
have to add a category to expose that, though. I'll start actually trying
things once the SDK downloads (I only had
2.1 and things don't compile under that).
Original comment by orestis
on 29 Jan 2009 at 9:37
from networkpx.
@9: I've tested it thoroughly and looks like Apple forgotten to implement
normalization for Unicode Greeks (E + ` -> È), in both Mac and iPhoneOS. Looks
like
we'll need to file a bug report. :|
@11: For this you actually have you write your own layout class
(UIKeybaordLayout,
which is a UIView) to insert a UIButton. But still it is much harder than
layout.plist. You can't use a custom layout together with layout.plist, yet.
Original comment by [email protected]
on 29 Jan 2009 at 9:52
from networkpx.
@13 I tested the Unicode normalisation on my Mac (10.5.6) and it seems to be
working fine (at least visually). Do
you have an example of something that doesn't work?
Can't I just call setTarget/Action:forKey: on the active keyboard layout to set
the action?
Original comment by orestis
on 29 Jan 2009 at 10:00
from networkpx.
@14:
(1) My fault again. I've used \U0341 instead of \U0301. Now it works on Mac
when I
used \U0301 instead.
(2) I haven't tried, but you may try. The target/action is just the things you
would
expect, and the key is a UIKeyDefinition, which you can check the "value"
member for
what's the key entered... Of course, if you do so, the problem will be where to
hook
your code.
Original comment by [email protected]
on 29 Jan 2009 at 10:10
from networkpx.
OK, going back to n00b levels. How do I make this thing to compile in the first
place?
It seems that I need mobile substrate which I got from
http://svn.saurik.com/repos/menes/trunk/mobilesubstrate/ , that complained
about ldid missing, so I found
this http://svn.telesphoreo.org/trunk/data/ldid/ , but it seems that this is
meant to go in the iPhone's /usr/bin/.
Is there any tutorial on how to set a development environment up?
Original comment by orestis
on 29 Jan 2009 at 11:01
from networkpx.
Further investigation: I managed to compile (but not sign with ldid)
libsubstrate.dylib. Now where should I put it
so that it gets picked up by gcc? gcc complains about not being able to find
-lsubstrate.
Original comment by orestis
on 29 Jan 2009 at 11:15
from networkpx.
Sorry for the comment spam, but I finally made it. Turns out that mobile
substrate was needed only to build the
preferences hook up, iKeyEx was building fine.
So I just modified the make file to point to the correct location for the
includes, and build. I still got ldid
complaints, so I signed on the phone (it would be good to find ldid for Mac OS
X).
Is there an automated way to reload the keyboard bundles (I have to go to the
settings, disable and enable them).
Also, is there any other way of testing the keyboard without copying to the
phone?
Original comment by orestis
on 29 Jan 2009 at 11:52
from networkpx.
@18:
(1) There's an ldid on Mac hosted on this site, check the Downloads page.
(2) The keyboard bundle will be automatically reloaded when you quit (actually
terminating it) and restart the application. Use sth. like Notes to test would
be
better than Texts (SMS).
Original comment by [email protected]
on 30 Jan 2009 at 6:35
from networkpx.
(Just to clarify, @15 the key is the text you enter instead of the
UIKeyDefinition*)
Original comment by [email protected]
on 30 Jan 2009 at 5:02
from networkpx.
I'm making some slow progress - how can I get a UIKeyDefinition in the first
place?
Example:
UIKeyboardLayout* layout = [[UIKeyboardImpl activeInstance] activeLayout];
//from a category, not sure if it
actually works.
[layout setTarget:self forKey:@" "];
[layout setAction:@selector(flipUpper) forKey:@" "];
what kind of key should I put in there? The headers mention _keyid_space_ but
it doesn't seem to be doing
anything. Of course, it might be that I don't get the active layout in the
first place. Here's how I grab it:
@interface UIKeyboardImpl (OMHACK)
- (UIKeyboardLayout*) activeLayout;
@end
@implementation UIKeyboardImpl (OMHACK)
- (UIKeyboardLayout*) activeLayout {
return m_layout;
}
@end
Original comment by orestis
on 31 Jan 2009 at 10:34
from networkpx.
@21:
You have to use an export statement like this in your header:
export NSString* UIKeyboardKeySpace;
then hook the target/action by
[layout setTarget:self forKey:UIKeyboardKeySpace];
[layout setAction:@selector(flipUpper) forKey:UIKeyboardKeySpace];
This is because internally iPhoneOS checks equally of the keys not by -[NSString
isEqualToString:], but just simple pointer comparison.
Other usable keys are UIKeyboardKeyReturn and UIKeyboardKeyDelete, and it seems
iPhoneOS only responds to these 3 keys (unless you redefine the setXXX:forKey:
methods).
Original comment by [email protected]
on 1 Feb 2009 at 8:59
from networkpx.
Thanks, I tried it but it still doesn't work. I suspect that I'm not getting
the correct layout or that changing the
targets like that isn't working (and given that only these three keys work, it
wouldn't matter for plan anyway).
It seems like creating a new layout will be the most straightforward solution.
I will investigate doing that - is
MultiTap a good place to start? I don't see any other custom layout in your
code.
Also, many thanks for creating iKeyEx and for helping me through this!
Original comment by orestis
on 1 Feb 2009 at 12:51
from networkpx.
@23:
MultiTap only reuses the standard layout (the Phone Pad layout is provided
already, I
just redirect all 4 relevant layouts building messages to Phone Pad).
hClipboard also uses a custom layout, but it is completely written from scratch
(i.e.
almost no UIKeyboardLayoutRoman-related methods are used).
You can also look into UIKBStandardKeyboardLayout.m & UIKBStandardKeyboard.m to
see
how I create the layout from layout.plist.
Original comment by [email protected]
on 1 Feb 2009 at 1:40
from networkpx.
[deleted comment]
from networkpx.
In 3.0, apple has added a greek keyboard and it fixes that issue (by using AAT
tables
again). But it would be great if someone can find out how to specify an input
manager
to read these tables from a particular font.
Original comment by [email protected]
on 22 Aug 2009 at 7:29
from networkpx.
Original comment by [email protected]
on 25 Dec 2009 at 8:59
from networkpx.
Related Issues (20)
- Emoti is not working for me
- GriP - Compability with iOS 4.0 HOT 15
- GriP 0.1-11s - lockscreen sleep/wake button crash
- under ios4 there's no way to activate 5-row querty HOT 1
- Multiple email alert for the same email HOT 3
- iOS 4 support in all networkpx projects, let's gift an iPhone 4 to KennyTM? HOT 3
- IkeyEx is not compatible with iOS 4.x HOT 7
- Open up any app. and goes into safe mode
- thread-safe subjc
- MathTyper doesn't work on my Verizon iPhone 4
- ios 4 compatibility?
- I lost my cydia
- My iPhone 4 got crashed 4 downloading things from Cytia
- Cydia crashes on iphone 4s 5.1.1
- cydia HOT 1
- Enter one-line summary
- class-dump-z iOS 7 device frameworks
- 6c3fd244c0c1af26b3a918f9654fa7c05744377e
- Mail and Safari keeps crashing
- Swift Support
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from networkpx.